通过 intent-filter 启动时,应用程序未显示在“最近”屏幕中

App doesn't show in Recents Screen when launched via an intent-filter

我正在尝试通过链接到 pdf-files 的 intent-filter 启动我的应用程序(解析 pdf 文件并将获取的数据存储到数据库中)。每当我正常启动应用程序时,它都会显示在“最近”屏幕中。 但是,如果我使用另一个应用程序中的视图 Intent/Action,它仍会按预期运行,但不会在“最近”屏幕中显示为自己的页面。相反,选择 pdf 文件的应用程序将显示在 header 和应用程序图标中,无论如何都会在“最近的屏幕”页面中显示我自己的应用程序的屏幕截图。

我已经尝试删除清单文件中的 android:label,但我没有设置 android:excludeFromRecents 属性。

还有哪些其他情况可能会导致所描述的行为?

What other circumstances might lead to the described behaviour?

这是完全正常的行为。默认情况下,启动的活动与启动它的 activity 在同一个任务中(“最近屏幕中的页面”)。这类似于选项卡式 Web 浏览器的工作方式:links 通常会在与包含 link.

的页面相同的选项卡中打开一个页面

你看到不同的行为是因为有人采取了措施来改变行为:

  • 启动你的activity可以添加标志来控制任务行为,例如FLAG_ACTIVITY_NEW_TASK

  • 您的 activity 可以具有控制任务行为的清单属性,例如 taskAffinityallowTaskReparentinglaunchMode

有关更多信息,请参阅 the documentation