Android 在清除其他活动的同时推送新活动

jam*_*mie 5 stack android task back android-activity

我有一系列活动 A、B、C,完成后需要将新活动 Y 推送到我的家庭活动中。任务堆栈应如下所示。

  • H
  • H->A
  • H->A->B
  • H->A->B->C
  • H->Y

我需要后退按钮才能从 C 回到 B 或 B 回到 A,但随后 C 已“完成”,我需要让 Y 成为活动任务。从Y“回来”需要回家(H)。

谢谢。

Ebo*_*ike 1

Jamie,现在在做 Android 的事情吗?多么可怕的想法啊!无论如何,finish()在从堆栈中删除活动时,它是您的朋友。您可以多次调用它以从堆栈中弹出多个活动。

或者,您也可以通过在意图中传递 FLAG_ACTIVITY_CLEAR_TOP 标志来擦除整个堆栈(但听起来您想保留 H,所以这可能不是一个明智的选择)。

顺便说一句,我没有玩过的一件事是 FLAG_ACTIVITY_NEW_TASK,但这可能适用于您的情况。在开始之前通过它A。不过,这对于您的情况可能完全没用,所以只需尝试一下即可。

编辑:玩了一下,多次调用 finish() 实际上并没有按预期工作。我从HFLAG_ACTIVITY_CLEAR_TOP 开始,然后Y立即开始工作(即startActivity一个函数中的两次调用)。