1.ActivityManager
ActivityManager am=(ActivityManager)getActivity().getSystemService(Context.ACTIVITY_SERVICE);
//这个方法已经过时
am.restartPackage(getActivity().getPackageName());
//谷歌提示使用下面的方法
am.killBackgroundProcesses(getActivity().getPackageName());
试了一下此方法,不好用
2.System.exit();
试了一下此方法,也不好用
3.将显示的所有Activity保存到List列表中,Activity创建时添加进List的列表,
Activity销毁时从List列表移除,当要关闭应用时,遍历List执行finish()方法。
此方法,有很多缺点,很容易内存泄露而导致OutOfMemory程序崩溃。
4.使用广播,将所有界面关闭。
5.使用第三方类库AndroidEventBus
1.创建一个基类的Activity,应用中所有的Activity都继承此基类
在基类中实现如下代码
2.当要关闭应用时,执行如下代码
当然EventBus的能力不仅仅如此,功能很强大,可以取代Handler和广播的使用,还可以设置工作的线程(主线程,子线程)等等
这是GitHub的地址:https://github.com/bboyfeiyu/AndroidEventBus
本文详细介绍了如何利用AndroidEventBus替代传统的应用退出方式,包括使用ActivityManager、System.exit()等方法的缺点,以及采用事件总线进行应用退出的优化策略。重点介绍了如何创建基类Activity,通过事件总线统一管理应用内所有界面的关闭流程,避免内存泄露问题。
1万+

被折叠的 条评论
为什么被折叠?



