1

我有一个类似这样的应用程序结构:

1项活动

n片段

App流程是这样的:

(活动1)(片段A)=>(活动1)(片段B)=>(活动1)(片段C)=> ...

因此,单个活动类的多个实例被实例化,其中包含不同的片段。

另外,当我在 Fragment B 中时(假设),我进行了 Fragment 事务以将其替换为 Fragment B',因此不会创建新的 Activity,并且 Fragment B 将替换为 Fragment B'。

现在,在这个事务中,我希望包含 Fragment A 和所有其他先前启动的活动的活动从backstack中弹出。

可以使用意图标志(CLEAR_TOP)打开根活动,但在这里我正在执行FragmentTransaction并希望清除此事件的活动回栈。

有什么帮助吗?

如何在不使用 FLAG_ACTIVITY_CLEAR_TOP 的情况下清除活动回栈,因为我没有在这里进行 Intent 调用?

4

1 回答 1

0

您可以在他的类中存储对活动 A 的静态引用。当您需要从历史记录中删除 A 时,您只需调用 ActivityA.getInstance().finish();

如果您在 A 活动中有多个实例,请将对其的引用放入 Vector 并使用 ActivityA.getInstance(0).finish(); 完成。

于 2012-09-12T16:26:37.357 回答