4

在此处输入图像描述

根据上面显示的图像,我有一些疑问。要求按顺序阅读每个步骤:-

  1. 每个块都是一个 Android Activity
  2. 箭头表示 Stack Direction - Activity 打开的顺序(A 在应用首次启动时启动)
  3. 在这里,当用户到达ACTIVITY F并想要打开活动 Z(我们正在使用 Flag_Activity_clear_top)时也是如此。
  4. 之后,当用户想要打开Activity D时,从Activity Z开始。

****我们在这一步的要求是 - 当活动 D 打开并且用户确实按下后退按钮时 - 我希望用户应该在活动 B之后被重定向回活动 C等等..** **

目前,当我们从活动 D(在来自 Z 之后)按回时,我们将被重定向到活动Z。

4

2 回答 2

5

CLEAR_TOP 不好,因为如果您以这种方式打开一个活动,它将删除整个堆栈,这听起来不像您想要的。

试试这个:当开始活动 E(从 D)、F(从 E)和 Z(从 F)时,使用标志“FLAG_ACTIVITY_NO_HISTORY”。此标志将阻止新活动出现在后台堆栈中。

请记住,您以这种方式打开的任何活动都不会在后台堆栈中注册。因此,如果您在(例如)处于 F 时进行反击,它将返回到 D。

希望这可以帮助!

于 2013-10-01T11:20:27.690 回答
0

-> 万一有人面临同样的问题。尝试将意图与标志“FLAG_ACTIVITY_CLEAR_TOP”和“FLAG_ACTIVITY_SINGLE_TOP”一起发送。

->文档中提到的示例:链接

考虑一个由以下活动组成的任务:A、B、C、D。如果 D 调用 startActivity(),其 Intent 解析为活动 B 的组件,则 C 和 D 将完成,B 接收到 sentIntent,导致堆栈现在是:A,B。

于 2015-06-26T07:23:58.527 回答