我有这个应用,用户可以在其中打开以下活动:
MainActivity-> ActivityB-> ActivityC-> ActivityD
现在,我希望用户能够从以下位置正常返回:
MainActivity <-ActivityB <-ActivityC
但是,如果要使用ActivityD,我希望它关闭一切直到MainActivity:
MainActivity <-ActivityD
这是完成我想要的事情的正确方法吗?
https://stackoverflow.com/a/14785924/10532911
编辑:我本来以/ 14785924/10532911作为解决方案。虽然,我根本不需要结果。下面的解决方案是我的解决方案。
答案 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
顶部的所有活动。
在您提供的示例中,这将完成ActivityD
,ActivityC
和ActivityB
。使用标志SINGLE_TOP
将确保将控制权返回给MainActivity
的现有实例(即:它不会创建MainActivity
的新实例)。
编辑:
@Override
public void onBackPressed() {
// place the code above here, to use back button to switch to new activity
}