FLAG_ACTIVITY_CLEAR_TASK如何运作?

时间:2017-11-22 20:32:33

标签: android android-intent

我对FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_NEW_TASK的组合非常困惑。是不是FLAG_ACTIVITY_CLEAR_TASK应该清除TARGET任务而不是调用者任务?

我们假设我有这个导航

A -> B -> C 

BCFLAG_ACTIVITY_NEW_TASK调用FLAG_ACTIVITY_CLEAR_TASK的位置。如何清除堆栈中的AB?我知道这种情况正在发生,因为我测试了它(如果我点击C,我会离开应用程序),但我不完全理解为什么...... AB是其中的一部分将创建一个不是任务C的其他任务。

FLAG_ACTIVITY_CLEAR_TASK

  

如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务。

上面的粗体文字表示调用者和目标任务被清除。我不清楚associated会是什么。

1 个答案:

答案 0 :(得分:0)

FLAG_ACTIVITY_CLEAR_TASK将通过在您的情况下启动新活动来清除所有现有任务 C

我认为您需要FLAG_ACTIVITY_CLEAR_TOP,这样才能清除您的案例 B 中堆叠的最高活动。

您可能对其他标志感兴趣,请查看here