我的应用中有3项活动。
Activity A(Main Page) -> Activity B -> Activity C.
点击活动C 时提交button
,它将再次返回活动A 。当我点击设备中的后退按钮退出应用程序时,它将再次返回活动C ,然后 B 和 A ,然后才能出口。
有没有办法让应用程序在后退按钮时立即退出 在活动A中按下设备?
我在活动A 中添加了以下代码,但问题是它仍然转到活动C 而不是退出。
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
答案 0 :(得分:1)
当您提交活动C而不是关闭活动时,您可能会再次打开活动A.所以执行以下操作:从活动B的结果开始活动C,当您在活动C上提交调用setResult()然后在活动C上调用finish()然后覆盖活动B中的onActivityResult()以及从活动C获取结果时在活动B上调用finish()然后你回到活动A,如果你回按,你的APP将关闭。 :)希望这有帮助
答案 1 :(得分:1)
我遇到了同样的情况。基本上我有HelloActivity(用于登录/注册),当使用完成登录后,他们转到MainActivity。单击MainActivity中的后退按钮时,我不希望用户转到HelloActivity。为了做到这一点,我所要做的只是在意图MainActivity期间调用finish()。下面是一个例子:
Intent intent = new Intent(this, MainAcivity.class);
startActivity(intent);
finish();
答案 2 :(得分:0)
感谢大家的回答和评论。我已经通过使用以下代码解决了这个问题
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);
}