希望有人可以帮我找出原因,最好是提供解决方法或者对这种行为作出解释。
问题:
在某些设备上,点击启动器图标会导致当前任务被恢复,而在其他设备上,它会导致初始启动意图被触发(有效地重新启动应用程序)。这是为什么?
详细信息:
当您按下“启动器图标”时,应用程序会正常启动。也就是说,我认为会发起一个Intent,其中包含第一个Activity
的名称及其操作为android.intent.action.MAIN
,类别为android.intent.category.LAUNCHER
。但是,情况并非总是如此:
在大多数设备上,如果您在应用程序已经运行后按下启动器图标,则会恢复该进程中当前正在运行的Activity(而不是初始Activity
)。它的恢复方式与您从OS菜单中的“最近使用的任务”中选择它的方式相同。这是我想要在所有设备上都拥有的行为。
但是,在某些其他设备上,会出现不同的行为:
在Motorola Xoom上,当您按下启动器图标时,无论当前正在运行什么内容,应用程序都会始终启动初始启动的
Activity
。我认为启动器图标总是会启动“LAUNCHER”意图。在Samsung Tab 2上,当您按下启动器图标时,如果您刚刚安装应用程序,则它将始终启动初始
Activity
(与Xoom相同);但是,在安装后重新启动设备后,启动器图标将恢复应用程序。我认为这些设备会在设备启动时将“已安装应用程序”添加到查找表中,以便启动器图标可以正确地恢复正在运行的任务?
我读了许多类似于我的问题的答案,但仅仅添加 android:alwaysRetainTaskState="true"
或者使用 launchMode="singleTop"
到 Activity
并不是解决之道。
编辑:
在最近一次启动该应用程序后,我们发现在第一次重启后所有设备上都开始出现此行为。这对我来说看起来很疯狂,但是通过查看重启过程,我实际上找不到问题所在。
finish()
。 - Graeme