我有一些活动,例如A,B,C,D 如何完成活动D,清除堆栈,避免返回活动C,并返回活动B. 请不要以C为结果开始D,在C中的onActivityResult,再次调用完成=)'因为finish()已经使用了))
答案 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
取决于当前情况。