[Activity生命周期] Android 完美退出应用程序
2013-07-24 14:27
483 查看
http://www.androidkaifa.com/forum.php?mod=viewthread&tid=384&reltid=992&pre_thread_id=0&pre_pos=9&ext= 最近两天为了解决Android上面退出程序问题折腾了半死,在google & baidu 上面找了很久、很久出来的完全千篇一律,说的方法有三,但是经过我试验后全部不行。 三个方法分别是: killProcess, 这种方式当你kill后 Activity 会返回到上一个Activity Android Level 8(包含8)前使用一个API来操作,Level8以后又是另外一种,所以不能通用 使用 FLAG_ACTIVITY_CLEAR_TOP,从 A 到 B 下面介绍自己的方式: 大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。 当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。 使用全局变量。对了,第一个想到的就是继承 Application,代码如下 public class AgentApplication extends Application { private List<Activity> activities = new ArrayList<Activity>(); public void addActivity(Activity activity) { activities.add(activity); } @Override public void onTerminate() { super.onTerminate(); for (Activity activity : activities) { activity.finish(); } onDestroy(); System.exit(0); } } 然后在 Activity onCreate 的时候来调用 addActivity (),有人可能想到这个Application需要在所有的 Activity onCreate的时候都使用,需要做一个单例实例。其实根本不需要。在 Activity 中使用 this.getApplication() 就可以了。 最后在你需要推出程序的地方调用 application.onTerminate() 就可以了。记住:super.onTerminate() 必须调用,代码中的 onDestroy()是我自己的释放其他资源的方法,不是系统的。 运行以上代码后,在LogCat 中会出现一行提示: Process 包名 (pid xxxxx) has died. 证明你的程序退出了。现在你可以测试了。 |
相关文章推荐
- Android-退出应用程序的所有activity
- Android:销毁所有的Activity退出应用程序几种方式
- 关于android 多个Activity应用程序按返回键退出程序问题
- Android实现左滑退出Activity(完美封装)
- Android:销毁所有的Activity退出应用程序几种方式
- Android学习笔记(08)——Android应用程序和Activity的生命周期
- Android程序中有多个Activity时的完美退出方法
- Android退出一个多Activity应用程序的方法
- android完美退出程序(创建单例管理所有打开的activity)
- Android应用程序中Activity的生命周期
- android 完美退出应用程序。
- Android经典完美退出应用程序的方法
- Android退出一个多Activity应用程序的方法
- android 完美退出所有Activity的demo
- Android完整退出应用程序完美解决方法
- Android结束多个Activity完美退出程序
- android 完美退出应用程序。
- Android结束Activity完美退出程序
- Android 应用程序Activity管理类:用于Activity管理和应用程序退出
- Android退出启动了多个Activity的应用程序