优雅的Android应用程序完全退出方案

来源:互联网 发布:100亿条数据查询效率 编辑:程序博客网 时间:2024/06/06 08:46
网上有关应用程序完全退出有一堆的解决方案,大致归类如下:
1.任务管理器方法(ActivityManager)。
2.android.os.Process.killProcess。
3.单例模式创建一个Activity管理对象,该对象中有一个Activity容器,每次新打开一Activity就加入到容器中,然后在完全退出时,循环遍历然后finish();
4.广播方式。
5.捕获异常,然后屏蔽强制对话框。
虽然实现方式很多,但感觉都不是很优雅,特别是第3种看起来很优雅,但是有一个很大的问题,存在严重的内存泄露隐患,这里给出我的一种实现方案:
比如应用程序启动加载spash页面(A)然后进入主界面(B),然后B启动C,C启动D,D启动B。
如果我们按默认启动方式的话,此时要在B页面关闭整个应用程序的话需要依次关闭B D C B A;
但是如果我们给B设置android:launchMode="singleTask" 当D启动B的时候就会自动清空D C 也不会重新启动一个B,而是用原来的B,这样在B关闭整个应用程序就只需要关闭B和A,当我们A启动B的时候finish掉A,我们就可以很轻松的在B页面关闭整个应用程序,因为当前只有一个B。
只要我们灵活的应用Activity的几种启动方式,充分了解每种启动方式使用的场景,就可以很容易的让应用程序完全随心所欲的退出。
本文转载自http://blog.pgyer.com/archives/262,为作者原创,欢迎随意转载,转载请注明出处。
0 0