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