统一管理Activity,响应app退出
2014-10-23 15:40
316 查看
之前,在Activitity中通过按键2次退出应用,但是有的时候按了2次不能退出。于是,自己想了一个方法,创建一个类,统一管理Activity。
ActivityInstanceManager.java
每个Activity创建的时候,调用下面的方法
在要退出应用的Activity中,添加返回按键监听。
ActivityInstanceManager.java
package com.chinabuye.android.activity; import java.util.ArrayList; import java.util.List; import android.app.Activity; public class ActivityInstanceManager { /******** 用于存放所有Activitiy类的集合 **********/ public static List<Activity> activityList = new ArrayList<Activity>(); /***** 单利管理类 *******/ private static ActivityInstanceManager manager; private ActivityInstanceManager() { } public static ActivityInstanceManager getActivityInstanceManager() { if (manager == null) { manager = new ActivityInstanceManager(); } return manager; } /** * 添加Activity的方法 * * @param activity */ public void addActivity(Activity activity) { activityList.add(activity); } /** * 退出应用的方法 */ public void exit() { for (Activity at : activityList) { at.finish(); } System.exit(0); activityList.clear(); } }
每个Activity创建的时候,调用下面的方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_category); /*** 管理Activity ****/ manageActivity();
....
在要退出应用的Activity中,添加返回按键监听。
// 手机返回键回调 private long mExitTime; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (side_drawer.isMenuShowing() || side_drawer.isSecondaryMenuShowing()) { side_drawer.showContent(); } else { <span style="color:#ff6666;">if ((System.currentTimeMillis() - mExitTime) > 2000) { Toast.makeText(this, R.string.press_again_to_exit, Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { ActivityInstanceManager.getActivityInstanceManager().exit(); }</span> } return true; } // 拦截MENU按钮点击事件,让他无任何操作 if (keyCode == KeyEvent.KEYCODE_MENU) { return true; } return super.onKeyDown(keyCode, event); }
相关文章推荐
- 基类Activity的封装+对app所有activity的统一管理
- 项目中的Activity统一管理 方便完全退出程序
- android 完美退出APP的实例代码(管理activity)
- android中Activity的管理及程序的退出
- android中Activity的管理及程序的退出
- android app如何检查和管理activity 的结果
- 安卓完美退出App以及跨界面关闭Activity
- 【转】AppManager类,管理Activity和App
- android完美退出程序(创建单例管理所有打开的activity)
- android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
- 通用于Activity管理和应用程序退出
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
- 一键退出一个app中所有activity
- Activity管理和应用程序的退出(推荐使用stack)
- 管理activity 完全退出应用程序
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
- 管理Activity 用户在主界面按两次回退退出系统
- android-管理activity,随时随地退出Activity
- Android Activity管理类,管理Activity和退出应用