在我的Android应用程序中,我有以下简单的场景:
活动A调用活动B,因此活动堆栈是(从上到下):
B - A
现在我想从B打电话给A,完成B活动。
如果我简单地使用finish()
,活动B将完成,但A仍然处于他之前的状态。相反,我希望A处于初始状态。所以我想完成上一个活动A的实例并创建一个新的实例(从堆栈中删除B)
我该如何执行此任务?
答案 0 :(得分:3)
使用标记startActvitity
在B中调用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
A。
如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。
例如,考虑一个由活动组成的任务:A,B,C,D。如果D调用带有解析为活动B组件的Intent的startActivity(),那么C和D将完成并且B接收给定的Intent,导致堆栈现在为:A,B。