通过意图过滤器启动时,应用程序不会显示在“最近”屏幕中
Posted
技术标签:
【中文标题】通过意图过滤器启动时,应用程序不会显示在“最近”屏幕中【英文标题】:App doesn't show in Recents Screen when launched via an intent-filter 【发布时间】:2020-10-10 20:47:01 【问题描述】:我正在尝试通过链接到 pdf 文件的意图过滤器启动我的应用程序(解析 pdf 文件并将获取的数据存储到数据库中)。每当我正常启动应用程序时,它都会显示在“最近”屏幕中。 但是,如果我从另一个应用程序使用 View Intent/Action,它仍会按预期运行,但不会在“最近”屏幕中显示为自己的页面。相反,选择 pdf 文件的应用程序将显示在标题和应用程序图标中,无论如何都会在“最近屏幕”页面中显示我自己的应用程序的屏幕截图。
我已经尝试删除清单文件中的 android:label 并且我没有设置 android:excludeFromRecents 属性。
还有哪些其他情况可能导致所描述的行为?
【问题讨论】:
【参考方案1】:还有哪些其他情况可能导致所描述的行为?
这是完全正常的行为。默认情况下,启动的活动与启动它的活动进入相同的任务(“最近屏幕中的页面”)。这类似于选项卡式 Web 浏览器的工作方式:链接通常会在与包含链接的页面相同的选项卡中打开一个页面。
您看到不同的行为是因为有人采取措施改变了行为:
启动你的活动可以添加标志来控制任务行为,例如FLAG_ACTIVITY_NEW_TASK
您的活动可以具有控制任务行为的清单属性,例如taskAffinity
、allowTaskReparenting
、launchMode
等。
请参阅the documentation 了解更多信息。
【讨论】:
感谢您的快速回答!在您的帮助下,我能够找出解决方案。我通过将 android:launchMode="singleTask" 添加到清单文件中的活动来解决了这个问题。以上是关于通过意图过滤器启动时,应用程序不会显示在“最近”屏幕中的主要内容,如果未能解决你的问题,请参考以下文章