我有三个模块 - ModuleA、ModuleB、ModuleC
ModuleA - 1 activity
MainActivity - 没有任务亲和性
Module B - 3 activities
Activity_A 任务亲和性 = "com.performance.poc.main"
Activity_B 任务亲和性 = "com.performance.poc.main"
Activity_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
Activity_D
MainActivity任务 com.performance.poc.main
Activity_C
Activity_B
Activity_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
Activity_D
MainActivity
任务 com.performance.poc.main
活动 _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 应该清除使用意图 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?