onBackPressed() 应该调用之前 activity 的 onBackPressed()
onBackPressed() should call previous activity's onBackPressed()
所以问题来了,我执行 A → B,然后从 B 我执行 B → C,现在当在 C 中按下后退按钮时,我想返回到 A。所以开始时流程是 A → B → C 但我想在启动 C 时清除 B,所以当从 C 按下后我回到 A。
我知道我可以从 C 和 CLEAR_TOP 开始 A,但如果有的话,我正在寻找另一种选择。
谢谢
在 Activity 上传递 Intent 后调用 finish();
,您不想在返回时打开。
你可以调用finish();在你开始意图 B 之后。
您只需拨打电话finish()
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
Intent intent = new Intent(this, C.class);
startActivity(intent);
finish();
如果在开始 C Activity 后调用 finish(),在 B Activity 中。您可以从堆栈中删除 B Activity。所以如果你在 C 中按回,你会看到 A Activity.
//FROM A TO B
Intent A = new Intent(A.this,B.class);
startActivity(A);
//FROM B TO C
Intent B = new Intent(B.this,C.class);
startActivity(B);
finish();
//FROM C TO A
onBackPressed(); you can go directly to A.
希望对您有所帮助
所以问题来了,我执行 A → B,然后从 B 我执行 B → C,现在当在 C 中按下后退按钮时,我想返回到 A。所以开始时流程是 A → B → C 但我想在启动 C 时清除 B,所以当从 C 按下后我回到 A。 我知道我可以从 C 和 CLEAR_TOP 开始 A,但如果有的话,我正在寻找另一种选择。
谢谢
在 Activity 上传递 Intent 后调用 finish();
,您不想在返回时打开。
你可以调用finish();在你开始意图 B 之后。
您只需拨打电话finish()
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
Intent intent = new Intent(this, C.class);
startActivity(intent);
finish();
如果在开始 C Activity 后调用 finish(),在 B Activity 中。您可以从堆栈中删除 B Activity。所以如果你在 C 中按回,你会看到 A Activity.
//FROM A TO B
Intent A = new Intent(A.this,B.class);
startActivity(A);
//FROM B TO C
Intent B = new Intent(B.this,C.class);
startActivity(B);
finish();
//FROM C TO A
onBackPressed(); you can go directly to A.
希望对您有所帮助