希望有人可以帮助我弄清楚,如果不是解决方案,至少是对行为的解释。
问题:
在某些设备上,按下启动器图标会导致当前任务被恢复,在其他设备上会导致初始启动意图被触发(有效地重新启动应用程序)。为什么会这样?
细节:
当您按下“启动器图标”时,应用程序会正常启动 - 也就是说,我假设会启动一个 Intent,其中包含您的第一个名称以及Activity
actionandroid.intent.action.MAIN
和 category android.intent.category.LAUNCHER
。然而,情况并非总是如此:
在大多数设备上,如果您在应用程序已经运行后按下启动器图标,则该进程中当前正在运行的 Activity 将恢复(而不是初始Activity
)。它恢复的方式与您从操作系统菜单的“最近的任务”中选择它的方式相同。这是我想要在所有设备上的行为。
但是,在选定的其他设备上会发生不同的行为:
在摩托罗拉 Xoom 上,当您按下启动器图标时,应用程序将始终启动初始启动
Activity
,无论当前正在运行什么。我假设启动器图标总是启动“启动器”意图。在三星 Tab 2 上,当您按下启动器图标时,如果您刚刚安装了该应用程序,它将始终启动初始
Activity
(与 Xoom 相同) - 但是,在安装后重新启动设备后,启动器图标将改为恢复应用程序。我假设这些设备在设备启动时将“已安装的应用程序”添加到查找表中,从而允许启动器图标正确恢复正在运行的任务?
我已经阅读了许多听起来与我的问题相似的答案,但只是简单地添加android:alwaysRetainTaskState="true"
或使用launchMode="singleTop"
不是Activity
答案。
编辑:
在最近一次启动这个应用程序后,我们发现在第一次重启后所有设备上都开始出现这种行为。这对我来说似乎很疯狂,但通过重启过程,我实际上找不到问题所在。