[英]How to manage Activity instances in Android
我有一个初始活动O
和另一个活动A
在其中我可以选择进入活动A1,A2,A3
,例如在每个活动中填写一个表格。 所以我走这条路:
O> A> A1> A> A2> A> A3
当我在A3
时,我想按后退按钮并再次转到O
,但是我将必须从A的每个实例传递(假设我使用finish()
或清单A1,A2,A3
no history
A1,A2,A3
因此它们将不会出现在堆栈中)
我如何声明A
在堆栈中只有一个实例(最后一个),因此如果我按两次后退按钮,我将再次转到O
?
@Override
public void onBackPressed() {
Intent intent = new Intent(this,O.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
将活动A
的launchMode
更改为singleTop
。 如文档中所述:
如果活动的实例已经存在于目标任务的顶部,则系统通过调用其onNewIntent()方法将意图路由到该实例,而不是创建活动的新实例。
现在,不必从A -> A1 -> A
转到,而是只需finish()
活动A1
(或使用向上按钮 ),这将使您返回到活动A
的实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.