Android清除活动后台堆栈

时间:2016-07-21 20:09:07

标签: android android-activity stack back

我有一些活动,例如A,B,C,D 如何完成活动D,清除堆栈,避免返回活动C,并返回活动B. 请不要以C为结果开始D,在C中的onActivityResult,再次调用完成=)'因为finish()已经使用了))

2 个答案:

答案 0 :(得分:0)

您可以使用FLAG_ACTIVITY_CLEAR_TOP标志。

请在此处查看Android documentation。它实际上使用了您给出的确切示例:

  

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。

     

例如,考虑一个由活动组成的任务:A,B,C,D。   如果D调用带有解析为的Intent的startActivity()   活动B的组成部分,然后C和D将完成,B接收   给定的Intent,导致堆栈现在为:A,B。

答案 1 :(得分:0)

我不确定这种行为是否需要永久性基础或它是否有条件。在第一种情况下,您可以在以下行添加D清单活动声明:

android:parentActivityName="com.example.B"

在第二种情况下,您可以覆盖活动D - onBackPressed()方法,并从此处开始Activity B取决于当前情况。