我目前在我的MainActivity中使用它进行两次后退以退出pp。它工作正常但问题是在第二次之后 按下退出应用程序,该应用程序退出coorectly与黑屏幕,这是不方便用户。我该如何克服这个问题?
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
getSupportFragmentManager().popBackStack();
navigationView.getMenu().getItem(0).setChecked(true); //set the background to the correct place
} else if (!doubleBackToExitPressedOnce) {
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, R.string.press_twice_to_exit, Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
} else {
super.onBackPressed();
System.exit(0);
}
}
答案 0 :(得分:0)
首先使用
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);
答案 1 :(得分:0)
删除System.exit(0)
并使用finish()
:
} else {
//removed backPressed and System.exit(0)
finish();
}