我的应用程序历史记录是正常的;当我启动意图时,我没有使用任何花哨的旗帜或任何东西。只有顺序的单任务启动活动。如果我回家,然后使用任务杀手来杀死我的应用程序,那么下次打开应用程序时,它会在杀死之前的最后一个活动中启动,而不是声明的Main活动。此外,如果我然后点击返回以退出应用程序并重新打开该应用程序,则会在我之前在杀死之前打开的任何活动之前获得任何活动。杀死后重新打开应用程序,打开以前的活动
像这样:
甲 =主要活动; B =一些其他活动; Ç =其他活动
- 打开应用 - 甲
- 打开乙 - 乙
- 的Open C - Ç
- 杀应用与任务的杀手
- 打开app - C
- 后退按钮 - 设备主
- 打开应用 - 乙
- 后退按钮 - 设备主
- 打开应用 - 一个
我会期望返回堆栈不会以后被记住任务杀死。我希望应用程序始终从声明的主活动开始,除非它已经在后台运行。 (因为杀人正在被利用,所以这里不是这种情况)但是这两件事似乎都没有发生,我不知道为什么。
我试图把一些代码来设置在我的应用类中的“初始化”布尔上一个的的onCreate,然后要检查它乙和ç的的onCreate。有一个想法是启动A的意图与NEW_TASK和CLEAR_TOP标志来尝试检测和纠正情况,但它仍然展现出相同的确切行为,除了它也会把A放在任何剩余的顶部。因此,不是将应用程序启动到B,而是将应用程序启动到BA。
基于我已阅读的有关应用程序的活动生命周期和操作系统查杀的所有内容,这是不可能的,但肯定会发生在我所有的测试设备上。有没有人有任何想法可能会导致这种奇怪的行为?
每当用户从主屏幕启动应用程序时,是否要启动活动A? – 2013-04-09 23:34:28
这是我的目标,是的。 – Dave 2013-04-10 12:27:49
只有这样才能使它变得复杂,你会看到很多闪烁,这取决于你的应用任务堆栈的大小。 – 2013-04-10 16:04:43