FLAG_ACTIVITY_CLEAR_TASK 如何工作?

Sta*_*wer 6 android android-intent

我对FLAG_ACTIVITY_CLEAR_TASK组合 to感到非常困惑FLAG_ACTIVITY_NEW_TASK。不FLAG_ACTIVITY_CLEAR_TASK应该清除 TARGET 任务而不是调用者任务吗?

假设我有这个导航

A -> B -> C 
Run Code Online (Sandbox Code Playgroud)

用和B调用的地方。那应该如何清除并从堆栈?我知道这是因为我测试了它(如果我再次点击,我会离开应用程序),但我不完全理解为什么......并且是不同任务的一部分,而不是将在其上创建任务。CFLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASKABCABC

FLAG_ACTIVITY_CLEAR_TASK

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

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

小智 2

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

我认为您需要FLAG_ACTIVITY_CLEAR_TOP,这只会清除您案例中堆栈中的顶部活动B

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