android - 从 singleInstance Activity 启动的新 Activity 的不同行为

标签 android android-activity android-manifest

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

  android:launchMode="singleInstance"

The docs声明:

A "singleInstance" activity, on the other hand, permits no other activities to be part of its task. It's the only activity in the task. If it starts another activity, that activity is assigned to a different task (...)

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

Test app on Samsung

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

Test app on Nexus 5x

这是什么原因呢?

三星设备的行为符合上述文档的预期,我这样说对吗?

三星真的做了一些其他公司没有做的正确的事情吗?

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

最佳答案

两种设备上的行为实际上是相同的。 singleInstance 应该为每个 Activity 打开一个新任务。在三星和 Nexus 上运行您的应用程序,将打开一个新任务。然而,最近的应用程序或概览屏幕在每台设备上的工作方式都不同(正如您所看到的,Nexus 中几乎没有所有应用程序或概览屏幕)。在 Nexus 上,新任务并不意味着概览屏幕中的新位置。它仍然会打开一个新任务,但打开它的任务将被置于后台并且可能不可见。在三星上,他们选择显示所有任务的背景或前景,这只是他们的设计选择。要在所有设备上获得您想要的行为,您需要使用 documentLaunchMode Docs 。这保证了新任务将创建并且将作为新任务显示在概览屏幕中 more docs

关于android - 从 singleInstance Activity 启动的新 Activity 的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963962/

相关文章:

php - android中的LoginActivity没有得到php json

Android:带定时器的录音

java - 使用事件总线更新接口(interface)的缺点?

android - 保存/恢复 android webview 的状态

android - BroadcastReceiver 不起作用?

android - AdMob 地址验证 PIN - 错误的字母?

java - 如何在某个屏幕后关闭某些 Activity ?

java - 重命名主 Activity 后出错

android - 无法找到明确的 Activity 类。您是否在 AndroidManifest.xml 中声明了此 Activity

android - 如何在 slider View 中显示来自特定内部目录的所有图像?