我对FLAG_ACTIVITY_CLEAR_TASK
与FLAG_ACTIVITY_NEW_TASK
的组合非常困惑。是不是FLAG_ACTIVITY_CLEAR_TASK
应该清除TARGET任务而不是调用者任务?
我们假设我有这个导航
A -> B -> C
B
在C
和FLAG_ACTIVITY_NEW_TASK
调用FLAG_ACTIVITY_CLEAR_TASK
的位置。如何清除堆栈中的A
和B
?我知道这种情况正在发生,因为我测试了它(如果我点击C
,我会离开应用程序),但我不完全理解为什么...... A
和B
是其中的一部分将创建一个不是任务C
的其他任务。
FLAG_ACTIVITY_CLEAR_TASK
如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。
上面的粗体文字表示调用者和目标任务被清除。我不清楚associated
会是什么。
答案 0 :(得分:0)
FLAG_ACTIVITY_CLEAR_TASK将通过在您的情况下启动新活动来清除所有现有任务 C 。
我认为您需要FLAG_ACTIVITY_CLEAR_TOP,这样才能清除您的案例 B 中堆叠的最高活动。
您可能对其他标志感兴趣,请查看here。