Android launchMode singleTask

时间:2011-01-29 12:32:12

标签: android android-manifest

如果我们有AB这两项活动,singleTaskAndroidManifest.xml开始A时定义为B,将被关闭(onDestroy()被立即调用)。为什么会发生这种情况,以及如何避免系统关闭A(同一应用程序中的多个singleTask活动)?

5 个答案:

答案 0 :(得分:5)

From documentation:

"singleTask" and "singleInstance" activities can only begin a task. They are always at the root of the activity stack.

由于系统中不能有两个根活动,因此在启动此类任务时将关闭所有先前的活动。

答案 1 :(得分:1)

您能提供示例代码和显示此问题的清单吗?为了重现它,我创建了一个简单的2-Activity应用程序,其中两个活动都有launchMode =“singleTask”,Activit1启动Activity2。这按预期工作(Activity1不会立即销毁)。我想你在你的代码或你的清单中做了其他事情,导致你所描述的行为。请发布代码和清单,以便我们帮助解决您的问题。

答案 2 :(得分:0)

这可能与task affinity有关。

答案 3 :(得分:0)

我有同样的问题。我将活动B的启动模式设置为“singleInstance”,它解决了问题。

答案 4 :(得分:0)

我测试的onDestroy不会在Android 5.1上启动