繁体   English   中英

返回特定活动,而无需再次开始

[英]Go back to a specific activity without starting it again

假设我有活动A,B,C,D。 我现在开始像A-> B-> C-> D这样的活动,我想单击一个按钮返回A,而无需再次加载其数据。 注意:我不希望所有这些都在backpress上使用。

我已经尝试过了。

Intent intent = new Intent(getActivity(),
A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

'但是原因是它重新启动了A。 再次调用所有api。

我想要的是那个。 例如,我有两个活动,例如1,2,现在我像1-> 2一样启动它们,如果我在按钮上完成2,则单击1将显示给我,而无需再次启动。 我要的是从按钮到按钮,而不是从背面按D到A。

仅使用一个清晰​​的顶部标志会使目标活动首先被破坏,然后重新创建。 为了避免这种情况,请使用两个标志:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

这将导致活动无法完成,因此您的API调用将不再发生。 如果需要,您在此处用来启动活动A的意图将传递给活动A中的onNewIntent()方法。

所有这些都假定您没有在活动清单声明中指定任何正在使用“多个”启动模式的启动模式。

根据文档:

如果已将其启动模式声明为“多个”(默认),并且您未将FLAG_ACTIVITY_SINGLE_TOP设置为相同的意图,则它将完成并重新创建;否则,它将重新创建。 对于所有其他启动模式,或者如果设置了FLAG_ACTIVITY_SINGLE_TOP,则此Intent将被传递到当前实例的onNewIntent()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM