大家都知道 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.  证明你的程序退出了。

最新文章

  1. Leetcode 60. Permutation Sequence
  2. AJAX实现跨域的三种方法
  3. BZOJ3569 : DZY Loves Chinese II
  4. 转:js-sdk探索之微信网页分享
  5. Java虚拟机工作原理详解 ( 二 )
  6. php新手:XAMMP打开开源php代码
  7. JS-SDK微信支付开发攻略
  8. Android -- 官方下拉刷新SwipeRefreshLayout
  9. quant_百度百科
  10. python 实现cm批量上传
  11. [LeetCode] Longest Uncommon Subsequence II 最长非共同子序列之二
  12. Android串口开发
  13. Reinforcement Learning: An Introduction读书笔记(1)--Introduction
  14. luogu4211 LCA
  15. requests库入门08-delete请求
  16. 【Yaml】Yaml学习笔记
  17. elasticsearch 口水篇(8)分词 中文分词 ik插件
  18. 【BZOJ5188】 [Usaco2018 Jan]MooTube
  19. “Linux内核分析”实验二报告
  20. 【Alpha】阶段第七次Scrum Meeting

热门文章

  1. hdu 6114 百度之星复赛B T1
  2. 我读过的最好的epoll讲解--转自”知乎“ 【转】
  3. Vim 自动补全成对的括号和引号
  4. JMM内存模型+volatile+synchronized+lock
  5. 【Android开发日记】之入门篇(二)——调试
  6. java使用BeanUtils封装file类型表单数据到一个对象中
  7. 检查URL Protocol是否安装的项目
  8. Hihocoder 1496 寻找最大值(状态压缩 + 高位前缀和)
  9. ==与equals()区别
  10. [LOJ6281]数列分块入门 5