如何返回活动堆栈中的某个活动?

时间:2011-01-11 11:34:48

标签: android filter android-activity android-intent

如果设备内存不足,是否有人知道活动是否可能从活动堆栈中删除?我有一个活动A调用webbrowser和一个网页,然后调用一个活动B做一些事情,然后应该返回到活动A.我使用这个意图与标志..

Intent intent = new Intent(this, acticityToReturnTo.getClass());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

..从活动堆栈中删除webbrowser活动和活动B并返回活动A但它不起作用。它始终是活动A的新实例,而不是恢复到已存在的活动实例。 我不想在活动A上使用单实例标志,但这是目前为我工作的唯一解决方案..(我正在为Android 1.6开发)

也许有另一种方法可以做我想要的事情?

4 个答案:

答案 0 :(得分:2)

尝试使用

startActivityForResult(意向);

而不是

startActivity(意向);

答案 1 :(得分:1)

我更愿意考虑重新启动活动A的问题,因为在此过程中,活动A或B可能会在任何时候被杀死。

当然,不管你是重新启动它还是从头开始重新创建它都可以返回活动A,这样做会更好,因为无法保证不会发生这种情况。 / p>

答案 2 :(得分:0)

如果导航始终是A-> B-> A,您只需在活动B上调用finish(),它就会返回到活动A

答案 3 :(得分:0)

浏览器和活动A是否在同一个任务中?您可以在控制台中输入adb shell dumpsys activity来检查这一点。