从singleInstance Activity启动的新活动的不同行为

时间:2016-06-22 09:30:59

标签: android android-activity android-manifest

我有一个简单的应用程序。第一个(启动)活动在清单中标记为

  android:launchMode="singleInstance"

The docs声明:

  

A" singleInstance"另一方面,活动不允许其他活动   活动成为其任务的一部分。它是该任务中唯一的活动。   如果它启动另一个活动,则将该活动分配给a   不同的任务(...)

因此,当我在Android 5.1上的Samsung设备上从我的第一个(singleInstance)活动启动第二个活动时,点击概览按钮,结果如预期:第二个活动是在自己的任务上启动的:

Test app on Samsung

在运行6.0.1的Nexus 5x上(以及在运行Android 5.1的模拟器上),第二个活动似乎也在同一个任务上:

Test app on Nexus 5x

这是什么原因?

我是对的,三星设备的行为是上述文档所期望的吗?

三星是否真的做得不对,其他人不这样做?

我可以找到我的简单测试应用here

1 个答案:

答案 0 :(得分:2)

两种设备上的行为实际上是相同的。 singleInstance应该为每个活动开启一个新任务。在三星和关系上运行您的应用程序,将打开一项新任务。但是,最近的应用程序或概述屏幕在每台设备上的工作方式不同(正如您可以看到,Nexus中没有关闭所有设备)。在Nexus上,新任务并不意味着概览屏幕中的新位置。它仍将打开一个新任务,但从中打开的任务将放在后台,可能不可见。在三星,他们选择显示背景或前景的所有任务,这只是他们的设计选择。要在所有设备上获得所需的行为,您需要使用documentLaunchMode Docs。这可以保证新任务将作为新任务more docs显示在概览屏幕中。