Activity1(未完成)可以启动Activity2,Activity2(未完成)可以启动Activity3。Activity2 和 3 可以使用
super.onBackPressed();
this.finish();
我想知道 Activity3 是如何直接回到 Activity1(不刷新)并释放 Activity2 的内存的?
Activity1(未完成)可以启动Activity2,Activity2(未完成)可以启动Activity3。Activity2 和 3 可以使用
super.onBackPressed();
this.finish();
我想知道 Activity3 是如何直接回到 Activity1(不刷新)并释放 Activity2 的内存的?
Intent intent = new Intent(Activity3.this, Activity1.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
这将使Activity1
be 在 backstack 的顶部,杀死所有Activities
在它上面的东西。希望这可以帮助。
试试这个
@Override
public void onBackPressed() {
startActivity(new Intent(this, UI.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
return;
}
尝试 super.finish(); 关闭第二个活动。
活动二
Intent intent = new Intent(Activity2.this, Activity3.class);
startActivityforResult(intent,0);
从 Activity3 回来onBackPressed()
时,需要时覆盖并设置结果
setResult(RESULT_CANCELED);
然后覆盖 Activity2 中的 onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 0) {
if(resultCode == RESULT_CANCELED)
finish();
}
}
当设置结果时,这将完成第二个活动。否则,您可以像任何正常活动一样来回导航。