所以我一直在阅读任务,后台和概述屏幕上的文档,有一件事让我感到非常困惑。在此处阅读launchMode
之后:http://developer.android.com/guide/components/tasks-and-back-stack.html然后在此处documentLaunchMode
:http://developer.android.com/guide/components/recents.html我不知道它们有何不同!
两者都被描述为提供控制相对于当前任务(启动活动的任务)的任务中新活动的启动的方法。那么这两种模式有何不同? -document 的追加意味着什么?
以下是直接引用它们在清单文件中使用的文档:
LaunchMode: http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
DocumentLaunchMode: http://developer.android.com/guide/topics/manifest/activity-element.html#dlmode
答案 0 :(得分:1)
让我们快速浏览launchMode
值:
standard
和singleTop
都允许在其他任务中创建多个活动实例。
singleTask
和singleInstance
都将活动限制为单个实例,作为其任务中的第一个活动。
你似乎有什么遗漏?这些值都不允许在顶级创建多个活动实例。您可以将活动的实例启动到其他人的任务中,或者将其限制为单个实例。这些值都不允许创建多个任务来托管您的活动。这种疏忽是documentLaunchMode
解决的问题。我们的想法是,如果您的活动有一个允许其查看文档的intent过滤器,那么每个文档 - 每个数据uri - 都应该能够在自己的任务中获得自己的活动实例。
答案 1 :(得分:0)
DocumentLaunchMode控制最近任务列表中的应用任务显示(指南栏中的第三个按钮)。 就像您在Chrome中打开网站一样,您可以打开有关此网站的许多标签。
答案 2 :(得分:0)
Ian Lake在Single Activity演讲期间的AndroidDevSummit 18期间确实对此有话要说。
他说现在不要使用launchMode。它们在android 1中非常出色。今天,它们可能并不是最好的东西。
documentLaunchMode已在API 21中添加,现在是正确的方法。他还提到避免使用骇人的解决方案,launchMode标志和任务亲缘关系。