优雅的退出所有Activity

什么是优雅式呢?

  • 即Receiver + singleTask.我们知道Activity有四种加载模式,而singleTask就是其中的一种,使用这个模式之后,当startActivity时,他先回在当前栈中查询是否存在Activity的实例,如果存在,则将其至于栈顶,并将其之上的所有Activity移除栈。我们打开一个app,首先是一个splash界面,然后会finish掉splash页面。跳转到主页。然后会在主页进行N次的跳转,期间会产生数量不定的Activity,有的被销毁,有的驻留在栈中,但是栈底永远是我们的HomeActivity。这样就让问题变得简单很多了。我们只需要两步操作即可优雅的实现app的退出。

1.在HomeActivity注册一个退出广播,和第二个广播是一样,但是这里只需要在HomeActivity一个页面注册即可。
2.设置HomeActivity的启动模式为singleTask

  • 当我们需要退出的时候只需要startActivity(this,HomeActivity,class),再发送一个退出广播。上面代码首先会把栈中HomeActivity之上的所有Activity移除栈,然后接到广播finish自己。一切OK!没有弹框,不用考虑机型Rom适配。不会有内存问题,就是那么的优雅,简单。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容