如何关闭除MainActivity之外的所有已打开的活动

时间:2017-12-26 16:05:31

标签: android android-studio

当我的活动堆栈是,

MainActivtiy - > Activity1 - > Activity2 - > Activity3

我需要返回3个状态才能从MainActivtiy

到达Activity3

我可以关闭Activity3之类的开放活动,

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

但是,上面的代码段会关闭所有活动,包括MainActivtiy并启动新的MainActivtiy。我想知道有没有其他选择来完成我需要的任务。我不想创建新的Intent,因为它删除了我在MainActivtiy中创建的静态方法的数据。

请帮助我,提前致谢。

1 个答案:

答案 0 :(得分:4)

您应该使用FLAG_ACTIVITY_CLEAR_TOP来运行活动并删除其上方的所有其他活动

注意:它会触发已经运行的活动onNewIntent,否则请在活动代码中提及launchMode = "singleTask",清单