完成所有附带活动,但不完成主要活动

时间:2018-10-27 10:25:24

标签: java android

我有这个应用,用户可以在其中打开以下活动:

MainActivity-> ActivityB-> ActivityC-> ActivityD

现在,我希望用户能够从以下位置正常返回:

MainActivity <-ActivityB <-ActivityC

但是,如果要使用ActivityD,我希望它关闭一切直到MainActivity:

MainActivity <-ActivityD

这是完成我想要的事情的正确方法吗?

https://stackoverflow.com/a/14785924/10532911

编辑:我本来以/ 14785924/10532911作为解决方案。虽然,我根本不需要结果。下面的解决方案是我的解决方案。

2 个答案:

答案 0 :(得分:0)

可能最好的方法是使用Intent标志,如下所示:

Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

答案 1 :(得分:0)

ActivityD中,要返回到MainActivity,请使用如下代码:

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

使用标志CLEAR_TOP将完成堆栈中MainActivity顶部的所有活动。

在您提供的示例中,这将完成ActivityDActivityCActivityB。使用标志SINGLE_TOP将确保将控制权返回给MainActivity的现有实例(即:它不会创建MainActivity的新实例)。

编辑:

@Override
public void onBackPressed() {

   // place the code above here, to use back button to switch to new activity
}