其他分享
首页 > 其他分享> > android-Intent.FLAG_ACTIVITY_CLEAR_TOP销毁目标活动.如何避免?

android-Intent.FLAG_ACTIVITY_CLEAR_TOP销毁目标活动.如何避免?

作者:互联网

我试图返回到活动堆栈中的活动,删除当前活动和目标活动之间的所有活动.

我读到这是实现它的方法:

Intent i = new Intent(SettingsActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

据说它将完成当前和目标之间的所有活动,但同时也破坏了目标活动.

这不是我一直在寻找的行为.我需要避免破坏目标活动.它应该自行恢复,而不是被破坏和重新创建.

如何实现?

解决方法:

您需要像这样添加FLAG_ACTIVITY_SINGLE_TOP:

Intent i = new Intent(SettingsActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);

当您使用FLAG_ACTIVITY_CLEAR_TOP时,Android会删除目标活动顶部的所有活动,包括目标活动的现有实例,然后创建目标活动的新实例.如果要使用目标活动的现有实例,则还需要指定FLAG_ACTIVITY_SINGLE_TOP.

标签:appcompatactivity,android-activity,activity-lifecycle,android
来源: https://codeday.me/bug/20191026/1939010.html