我试图返回活动堆栈中的活动,删除当前活动与目标活动之间的所有活动。
我知道这是实现它的方法:
Intent i = new Intent(SettingsActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
据说它将完成当前和目的地之间的所有活动,但也会破坏目的地活动。
这不是我想要的行为。我需要避免目标活动的破坏。它应该恢复自己而不是被破坏和重建。
如何实现?
答案 0 :(得分:4)
您需要像这样添加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会删除目标Activity
之上的所有活动,包括目标Activity
的现有实例,然后创建目标{{1}的新实例}}。如果您要使用目标Activity
的现有实例,则还需要指定Activity
。