我一直在开发 Android Native App,我想做的是:
Activities - A -> B -> C Then A-> B -> C -> C .
从 C Activity 中,如果它再次指向 C,那么我想手动从堆栈中删除 C、B。
在我的背上它应该只移动到 A 。
我尝试完成()但问题是:
Activities - A -> B -> C Then A-> B -> C -> C on finish A -> B -> C required state A-> C .
有谁知道如何捕获堆栈中的所有活动并从堆栈中删除特定活动?
在活动 C 中,覆盖onBackPressed
并添加如下内容:
@Override
public void onBackPressed() {
if (shouldGoBackToA) { // There are various ways this could be set
Intent intent = new Intent(this, AActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} else {
finish();
}
}
FLAG_ACTIVITY_CLEAR_TOP
将导致它在堆栈中向下移动到 A Activity 的现有副本,而不是启动一个新副本。来自文档 http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP:
公共静态最终整数FLAG_ACTIVITY_CLEAR_TOP
如果设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是关闭该活动之上的所有其他活动,并且此 Intent 将传递到(现在在顶部)旧活动作为新意图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)