我无法使用Intent.FLAG_ACTIVITY_CLEAR_TOP和android:launchMode =“singleInstance”弹出堆栈中的所有活动。
在我的应用程序活动A中,启动活动B(通过startActivity),然后启动活动C(通过startActivity)。在活动C上,用户按下菜单项以返回活动A.当他们到达活动A时,我只想要堆栈上的A,这样如果他们点击后退按钮,他们将返回到主屏幕(桌面)。
当用户按下按钮返回A:
时,这是我当前使用的代码Intent i = new Intent(this, A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
所有活动在项目清单中定义为android:launchMode =“singleInstance”。
我的代码似乎不起作用。一旦我回到活动A,如果我点击后退按钮,我将返回活动C.我是否误解了如何使用Intent.FLAG_ACTIVITY_CLEAR_TOP?
答案 0 :(得分:2)
我总是找到确保从堆栈中删除C的最佳方法是在startActivity之后调用finish()以从堆栈中删除C.
文档看起来好像事情会按照你期望的方式运行,但看起来似乎没有发生,所以finish()将确保C被删除。
答案 1 :(得分:0)
我通常使用Al建议的技术(在开始新活动后调用finish())。
您还可以尝试使用任务亲和力。我自己从未这样做过,但也可能与你的情况有关。请参阅此主题:http://groups.google.com/group/android-developers/browse_frm/thread/ca3b26a14d024597/129e37375105901b