任务杀手没有重置堆栈

时间:2010-12-07 21:13:53

标签: android

我的应用程序有一个主要的活动A,它在活动B上执行StartActivity。如果有人使用任务杀手(例如,高级任务杀手),应用程序被杀死,但当他们再次运行应用程序时,我看到Application对象是正在构建(onCreate调用),然后它直接进入活动B而不是活动A.清单有A是启动器活动。

如果我运行A,然后是活动B,关闭通知列表并运行Task Killer来杀死我的应用程序,然后按Back键,它会创建Application对象,然后创建Activity B对象,我也会看到该场景。

有关如何防止此行为的任何想法?活动B假定活动A已经运行。我能够克服这个但在Application对象中有一个布尔值,它在Activity A上设置。在Activity B onCreate中,如果没有设置那个全局标志,我会做一个finish()。必须是更好的方法来处理这个,因为我有很多活动会遇到相同的行为。

2 个答案:

答案 0 :(得分:2)

活动B几乎不应该假设任何其他活动已经运行。活动意味着独立单位。如果B 必须依赖于A,则应该对前置条件进行一些测试,如果失败,则通过Intent打开ActivityA。

答案 1 :(得分:1)

而不是将标记保留在应用程序中,您可以将其保留在SharedPreferences中 - 然后您的活动B将始终知道该标志的正确值。