优雅的App全然退出方案(没有不论什么内存泄漏隐患)

Posted blfbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优雅的App全然退出方案(没有不论什么内存泄漏隐患)相关的知识,希望对你有一定的参考价值。

android开发过程中,特别是界面比較多的情况下,用寻常的退出方式往往是不能全然退出这个应用,网络上也好多各种退出方案。当中一种应该是被广大开发人员採纳使用,也很的清晰方便。就是在Application中维护一个单例的List<Activity>管理容器,每次打开新的Activity就把当前Activity增加到容器中,然后在须要全然退出的时。就循环遍历该容器分别finish()每一个Activity。即达到全然退出功能。

尽管这样的退出方式非常好。但却存在内存泄漏的隐患。所以,我们还须要再找更优的方案。这里给出一个非常好的、实现超级简单的方法,不须要通过什么管理Activity,而是通过在Activity的启动模式上做文章。

举个样例!

比方:有一个应用一打开首先进入A界面(引导界面)、再进入B界面(主界面)、然后进入C界面、进入D界面、进入E界面、进入F界面、再返回到B界面(主界面)、然后进入G界面、进入H界面,最后再返回到B界面(主界面),即流程为A->B->C->D->E->F->B->G->H->B

假设Activity是按默认的启动模式,则在主界面B上点退出button要退出整个app的话,则须要依次关闭B-H-G-B-F-E-D-C-B-A界面。然并卵......这谁也不愿意这样关闭啊。可是我们假设设置B界面(主界面):android:launchMode="singleTask",那么启动过程从A->B->C->D->E->F->B到B界面上时,这时候不会又一次创建一个B界面,而是自己主动finish掉C、D、E、F界面后再使用原来那个B界面。然后再从B->G->H->B,也是会自己主动finish掉G、H界面而使用之前的B界面。所以,退出整个app应用也就仅仅需退出界面A和界面B了,而A界面是引导界面。当从A进入B的时候就能够先finish掉A,然而。如今仅仅须要在主界面B上finish自己就能够了。

轻轻松松完毕整个App应用的退出。



以上是关于优雅的App全然退出方案(没有不论什么内存泄漏隐患)的主要内容,如果未能解决你的问题,请参考以下文章

c++ 内存泄漏问题

如何解决 iOS App 中的内存泄漏问题?

线程上下文类加载器ContextClassLoader内存泄漏隐患

Handler引起的内存泄漏详解及解决方案

Handler引起的内存泄漏详解及解决方案

为什么不取消注册BroadcastReceiver会导致内存泄漏