如果我们有A
和B
这两项活动,singleTask
在AndroidManifest.xml
开始A
时定义为B
,将被关闭(onDestroy()
被立即调用)。为什么会发生这种情况,以及如何避免系统关闭A
(同一应用程序中的多个singleTask
活动)?
答案 0 :(得分:5)
"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上启动