【发布时间】:2018-03-07 18:10:13
【问题描述】:
我有四个活动 - A、B、C、D
我以--> A-B-C-D-B 的方式称呼这四个活动。 (指定方式)
我有三个场景。
1st :- 我只在 B 活动中定义 android:launchMode="singleTask"。我正在以上述指定方式通过Intent 调用所有活动。
现在首先调用 A-B-C-D ,BackStack Task 1 : A-B-C-D,
现在我再次打电话给 B,然后是BackStack Task 1 : A-B。此处 C 和 D 活动被销毁。
第二个:- 我在 B 活动中定义 android:launchMode="singleTask" 和 android:taskAffinity=""。我正在以上述指定方式通过Intent 调用所有活动。
现在首先调用 A-B-C-D ,BackStack Task 1 : A
Task 2 : B-C-D
现在我再次打电话给 B,然后BackStack Task 1 : A
Task 2 : B ,Here C and D Activities are destroyed.
3rd :- 我在 B 活动中定义 Intent.FLAG_ACTIVITY_NEW_TASK 和 android:taskAffinity=""。我正在以上述指定方式通过Intent 调用所有活动。
现在首先调用 A-B-C-D ,BackStack Task 1 : A
Task 2 : B-C-D
现在我再次打电话给 B,然后BackStack Task 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
那么哪些是正确的场景?我做对了,或者我误解了一些东西。
【问题讨论】:
-
你在
singleTasklaunchMode的活动中使用过onNewIntent()吗? -
没有,我没用过。它的语法是什么?我的意思是 onNewIntent() 的语法
-
但是,我没有在活动之间传递任何值,所以我应该强制重写 onNewIntent() 方法吗?
-
在初级阶段,我想知道上述场景的正确行为,这些正确与否?
标签: android back-stack launchmode