如何从堆栈中删除顶级活动,然后启动下一个活动

时间:2012-11-08 20:36:20

标签: android android-activity stack history

在我的应用程序中,我有三个活动A,B和C.活动A使用特定的requestCode启动活动B(并等待返回的结果),活动B启动活动C.在清单中,C设置为不将它的历史记录存储在堆栈中,因此当用户继续时,它们将被发送到活动B.此时,后端堆栈从底部到顶部看起来像ABB。最底部的B是使用正确的requestCode启动的,但最顶层的B没有使用任何requestCode启动。现在我的问题是,我怎样才能使得最底部的B被“恢复”而不是最顶级的B被创建?此外,我试图在我的清单中使用“singleTask”和“singleTop”属性作为B活动,虽然它确实使用了堆栈上已有活动的相同实例,但似乎requestCode不再像如果活动A已经开始。

1 个答案:

答案 0 :(得分:0)

实际上我正在阅读用于启动活动的不同标志并找到FLAG_ACTIVITY_REORDER_TO_FRONT标志。这完全实现了我想要的,它恢复已经在堆栈上的活动而不创建另一个实例,并且不发出或更改任何现有的requestCodes。