在网络上搜索了,大概就5个方案:
1.System.exit(0) 或者 finish 不可行
2.android.os.Process.killProcess(android.os.Process.myPid()); 不可行
3.利用广播发送退出请求,然后每一个Activity都继承一个基类Activity,在基类Activity里面完成退出 不可行
4.List<Activity> 每次有新的Activity就在他的onCreate()里面将自己添加至一个Activity管理栈,然后退出时一个一个从里面获取Activity,调用其finish()达到完全退出 该方案可行,但是问题是:这样一来,我的程序会变得很卡(程序本身要加载大量的图片,去除这个方案后和加入这个方案后卡顿效果明显( 亲测),原因可能是这样一来,这个Activity就一直被Activity管理栈关联着,然后gc无法回收掉一些垃圾)
5.制造一个异常,并进行捕获,然后在自定义的Application里面处理这个异常,同时去除Android系统的默认Fc窗口,实现消无声息的异常退出,而在用户看来却是如同正常退出( 原理还没搞明白,暂未测试实现)
补充一下,我的TabActivity使用的是singleTask模式启动的
1.System.exit(0) 或者 finish 不可行
2.android.os.Process.killProcess(android.os.Process.myPid()); 不可行
3.利用广播发送退出请求,然后每一个Activity都继承一个基类Activity,在基类Activity里面完成退出 不可行
4.List<Activity> 每次有新的Activity就在他的onCreate()里面将自己添加至一个Activity管理栈,然后退出时一个一个从里面获取Activity,调用其finish()达到完全退出 该方案可行,但是问题是:这样一来,我的程序会变得很卡(程序本身要加载大量的图片,去除这个方案后和加入这个方案后卡顿效果明显( 亲测),原因可能是这样一来,这个Activity就一直被Activity管理栈关联着,然后gc无法回收掉一些垃圾)
5.制造一个异常,并进行捕获,然后在自定义的Application里面处理这个异常,同时去除Android系统的默认Fc窗口,实现消无声息的异常退出,而在用户看来却是如同正常退出( 原理还没搞明白,暂未测试实现)
补充一下,我的TabActivity使用的是singleTask模式启动的