检查应用程序是从最近的应用程序还是从启动器图标恢复

Posted

技术标签:

【中文标题】检查应用程序是从最近的应用程序还是从启动器图标恢复【英文标题】:Checking if the app was resumed from recent apps or from the launcher icon 【发布时间】:2015-03-01 03:30:00 【问题描述】:

我想区分用户从“最近的应用程序”列表或启动器图标恢复我的应用程序的事件,即使后台有一个未完成的应用程序运行。

我的应用是一个包含多个 Fragments 的单个 Activity,预期的行为是,如果用户从“最近的应用”恢复,我不需要做任何事情,因为默认行为会将它们带回片段他们把它留在了。但是,当用户再次从图标启动应用程序时,我想将片段管理器中的所有片段弹出到第一个片段,本质上就像重新启动应用程序一样。

尽管现在,即使用户点击启动器图标,应用程序也会像往常一样从“最近的应用程序”列表中恢复,而不会在 Activity 上调用 onCreate()。 我看过类似的问题,但它们似乎表明当用户再次从图标启动时会重新创建活动,这很奇怪,而不是我观察到的:android resume app from recent applications list

有什么想法吗?

【问题讨论】:

我认为没有办法做到这一点,抱歉。 这是标准的 Android 行为。 “通过主屏幕上的图标启动应用程序”和“通过从最近任务列表中选择应用程序启动应用程序”之间没有区别。这两个动作完全相同,您无法区分。不幸的是,您在帖子中链接到的问题的公认答案是错误的:-( 【参考方案1】:

您可以尝试将此属性添加到您的活动清单文件中。

<activity>
   ...
   android:launchMode="singleTask"
</activity

【讨论】:

以上是关于检查应用程序是从最近的应用程序还是从启动器图标恢复的主要内容,如果未能解决你的问题,请参考以下文章

单击科尔多瓦中的应用程序图标启动器时如何恢复应用程序?

检测应用程序是不是通过单击应用程序图标或推送通知启动(当应用程序被用户强制终止时)

XCode 不允许我设置应用程序图标/启动图像

Flink基础系列28-Flink容错机制

如何检查程序是不是从自动启动运行?

检查 Windows 服务列表是不是正在运行,如果不是从批处理文件启动