【发布时间】:2014-02-27 00:09:59
【问题描述】:
我拥有三个模块 - ModuleA、ModuleB、ModuleC
ModuleA - 1 activity
MainActivity - 没有任务关联
Module B - 3 activities
活动_A 任务亲和性 = "com.performance.poc.main"
活动_B 任务亲和性 = "com.performance.poc.main"
活动_C 任务亲和性 = "com.performance.poc.main"
Module C - 1 activity
Activity_D - 没有任务关联
Navigation Case 1:
- 主要活动
- 在 btn 单击 - 启动 Activity_A Intent.FLAG_ACTIVITY_NEW_TASK
- 在 btn 单击 - 启动 Activity_B
- 在 btn 单击 - 启动 Activity_C
-
在 btn 单击 - 启动 Activity_D Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK
预期的任务结果:
任务 com.performance.poc
活动_D
主活动任务 com.performance.poc.main
活动_C
活动_B
活动_A预期:在启动 Activity_D 任务时 com.performance.poc.main 应该被清除。 实际:Activity_A、Activity_B、Activity_C 仍然存在,但 MainActivity 已清除。
Navigation Case 2:
- 主要活动
- 在 btn 单击 - 启动 Activity_A Intent.FLAG_ACTIVITY_NEW_TASK
- 在 btn 单击 - 启动 Activity_B
- 在 btn 单击 - 启动 Activity_C Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK
- 在 btn 单击 - 启动 Activity_D Intent.FLAG_ACTIVITY_NEW_TASK
预期的任务结果:
任务 com.performance.poc
活动_D
主活动
任务 com.performance.poc.main
Activity_C
活动_B
活动_A
Expected : on starting the Activity_C, in task com.performance.poc.main, Activity_A, Activity_B should be cleared.
Actual : Activity_A, Activity_B is cleared as expected.
我的问题是为什么在案例 1 中,即使 Activity_A、Activity_B、Activity_C 处于同一任务中,并且它没有清除这些并清除 MainActivity。
Clear_Task 应该清除 Activity 的现有任务使用意图 new_task 和 clear_task 调用 startActivity。 否则它将清除目标 Activity 的任务。
If it is Target activity, I need to clear the task of the leaving activity, is there any way to do it?
【问题讨论】:
-
清单中的包名是什么?
-
package="com.performance.poc"
-
当你说“没有任务关联”(例如在
MainActivity)时,你的意思是<activity>标签中没有android:taskAffinity,对吗? -
是的。你说的对。也没有为该活动和应用程序标签添加 taskAffinity 属性。
标签: android android-navigation android-intent