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

网上有关应用程序完全退出有一堆的解决方案,大致归类如下:

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的几种启动方式,充分了解每种启动方式对应的场景,就可以很容易的让应用程序完全随心所欲的退出。

 

共有 0 条评论