如果设备内存不足,是否有人知道活动是否可能从活动堆栈中删除?我有一个活动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开发)
也许有另一种方法可以做我想要的事情?
答案 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
来检查这一点。