Java 如何使双击返回关闭我的应用程序
我有startActivity和主屏幕活动。主屏幕活动出现在startActivity之后。我想实现双击返回以关闭应用程序。我尝试了这段代码,但在应用程序关闭后,它会立即重新打开,或者只是返回startActivityJava 如何使双击返回关闭我的应用程序,java,android,android-studio,Java,Android,Android Studio,我有startActivity和主屏幕活动。主屏幕活动出现在startActivity之后。我想实现双击返回以关闭应用程序。我尝试了这段代码,但在应用程序关闭后,它会立即重新打开,或者只是返回startActivity @Override public void onBackPressed() { if (doubleBackToExitPressedOnce) { super.onBackPressed(); return
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Нажмите ещё раз что бы закрыть приложение", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
如果此代码位于某些子活动中(不在主活动中),请尝试替换:
super.onBackPressed()
与:
finishafinity()
由于根据《基本法》:
默认实现只是完成当前活动,但是您可以覆盖它来执行任何您想要的操作
调用super.onBackPressed()
将完成当前活动,而不是整个应用程序。这可能是您的bug的来源,但我不能确定,因为您没有为我们提供更广泛的上下文—更多的代码
因此,另一方面,finishafinity()
可能是您的解决方案。说:
完成此活动以及当前任务中紧靠其下方具有相同关联性的所有活动
这将完成所有活动。您可以发布startActivity课程代码吗?为什么要这样做?这不是安卓的正常行为,更可能会惹恼用户。但是出现问题的原因是super.onBackPressed不会退出应用程序—它会完成一项活动。所以它会把你带回到它后面的堆栈上。如果希望堆栈中没有startActivity(因此无法返回),则需要在启动HomeActivity后对其自身调用finish()。