我有四个活动 - A,B,C,D。
我是按照A-B-C-D-B的方式调用这四个活动。(指定方式) 我有三种情况。 第一种: 我只在B Activity中定义了
现在首先调用A-B-C-D,
现在我再次调用B,则
现在首先调用A-B-C-D,
我是按照A-B-C-D-B的方式调用这四个活动。(指定方式) 我有三种情况。 第一种: 我只在B Activity中定义了
android:launchMode="singleTask"
。并且我通过上述指定的方式使用Intent
来调用所有活动。现在首先调用A-B-C-D,
BackStack Task 1 : A-B-C-D,
。现在我再次调用B,则
BackStack Task 1 : A-B
。此处C和D活动被销毁。
第二种: 我在B Activity中定义了android:launchMode="singleTask"
和android:taskAffinity=""
。并且我通过上述指定的方式使用Intent
来调用所有活动。现在首先调用A-B-C-D,
BackStack Task 1 : A
。 Task 2 : B-C-D
现在我再次调用B,然后返回栈任务1:A
Task 2 : B ,Here C and D Activities are destroyed.
第三步:我在B Activity中定义了Intent.FLAG_ACTIVITY_NEW_TASK
和android:taskAffinity=""
,并以上述方式通过Intent
调用所有活动。
现在首先调用A-B-C-D,BackStack Task 1 : A
Task 2 : B-C-D
现在我再次调用B,然后返回栈任务1:A
Task 2 : B-C-D , Here **Can't call B again**
这里提到FLAG_ACTIVITY_NEW_TASK与"singleTask"有相同的行为:https://developer.android.com/guide/components/activities/tasks-and-back-stack.html
那么哪些是正确的情境呢?我是理解得对还是误解了什么?
singleTask
启动模式的活动中,是否使用过onNewIntent()
方法? - mridA
启动B
,然后B
启动C
,C
启动D
,最后D
又启动B
吗? - David WasseronNewIntent()
的使用与此问题完全无关。 - David Wasser