如何清除堆栈中当前的活动?

3
支持应用程序启动活动A,然后A启动活动B并完成自身。之后,活动B启动活动C。
现在堆栈包含B和C,C位于顶部。
然后我在活动C中点击一个按钮,并希望清除B和C并启动活动A,即我希望活动A是堆栈中唯一的活动。我该如何做?
编辑:我进行了一个测试,使用FLAG_ACTIVITY_CLEAR_TOP。但在我的情况下它没有起作用,因为当在活动C中点击按钮时,活动A没有运行。
1个回答

3

在您的意图上设置FLAG_ACTIVITY_CLEAR_TOP标志,以启动活动A。

编辑:您不能让A继续运行吗?然后你可以按建议做。

否则,另一个(更复杂的)选项:

在B中启动C forResult。当从C启动A时,您可以使用结果完成C,指示B也退出。


1
Android文档中提到:“如果设置了FLAG_ACTIVITY_CLEAR_TOP标志,并且要启动的活动已经在当前任务中运行,则不会启动该活动的新实例,而是将其上面的所有其他活动关闭,并将此Intent作为新Intent传递给(现在位于顶部的)旧活动。”但在我的情况下,活动A没有运行,FLAG_ACTIVITY_CLEAR_TOP仍然有效吗? - user256239
谢谢。我决定让活动A继续运行。 - user256239

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接