android:launchMode和android:documentLaunchMode属性有什么区别?

时间:2015-08-22 08:31:55

标签: android android-activity android-task

所以我一直在阅读任务,后台和概述屏幕上的文档,有一件事让我感到非常困惑。在此处阅读launchMode之后:http://developer.android.com/guide/components/tasks-and-back-stack.html然后在此处documentLaunchModehttp://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

3 个答案:

答案 0 :(得分:1)

让我们快速浏览launchMode值:

standardsingleTop都允许在其他任务中创建多个活动实例。

singleTasksingleInstance都将活动限制为单个实例,作为其任务中的第一个活动。

你似乎有什么遗漏?这些值都不允许在顶级创建多个活动实例。您可以将活动的实例启动到其他人的任务中,或者将其限制为单个实例。这些值都不允许创建多个任务来托管您的活动。这种疏忽是documentLaunchMode解决的问题。我们的想法是,如果您的活动有一个允许其查看文档的intent过滤器,那么每个文档 - 每个数据uri - 都应该能够在自己的任务中获得自己的活动实例。

答案 1 :(得分:0)

DocumentLaunchMode控制最近任务列表中的应用任务显示(指南栏中的第三个按钮)。 就像您在Chrome中打开网站一样,您可以打开有关此网站的许多标签。

答案 2 :(得分:0)

Ian Lake在Single Activity演讲期间的AndroidDevSummit 18期间确实对此有话要说。

他说现在不要使用launchMode。它们在android 1中非常出色。今天,它们可能并不是最好的东西。

documentLaunchMode已在API 21中添加,现在是正确的方法。他还提到避免使用骇人的解决方案,launchMode标志和任务亲缘关系。