我的应用历史记录正常;当我启动意图时,我没有使用任何花哨的标志或任何东西。仅按顺序、单任务启动的活动。如果我回家,然后使用任务杀手杀死我的应用程序,下次我打开应用程序时,它会在我杀死之前的最后一个活动而不是声明的 Main 活动处启动。此外,如果我然后点击返回退出应用程序并再次重新打开它,我会得到任何在我之前在杀死之前打开的 Activity 之前打开的 Activity。
像这样的东西:
A = 主要活动; B = 其他一些活动; C = 其他一些活动
- 打开应用程序 - A
- 打开 B - B
- 打开 C - C
- 使用任务杀手杀死应用程序
- 打开应用程序-C
- 后退按钮 - 设备主页
- 打开应用程序-B
- 后退按钮 - 设备主页
- 打开应用程序 - A
我希望在任务终止后不会记住后台堆栈。我希望应用程序始终从声明的 Main 活动开始,除非它已经在后台运行。(这里不是这种情况,因为正在使用杀戮)然而,这两件事似乎都没有发生,我不知道为什么。
我尝试在A的 onCreate 上的Application 类中放入一些代码来设置“初始化”布尔值,然后在B和C的 onCreate 中检查它。想法是使用 NEW_TASK 和 CLEAR_TOP 标志启动A的意图,以尝试检测和纠正场景,但它仍然表现出相同的行为,除了它还将A放在剩余的任何东西之上。因此,它不会将应用程序启动到B中,而是将应用程序启动到BA中。
根据我所读到的有关活动生命周期和操作系统杀死应用程序的所有内容,这是不可能的,但它肯定会发生在我所有的测试设备上。有没有人对可能导致这种奇怪行为的原因有任何想法?