后退两次导致黑屏

时间:2017-01-17 15:21:24

标签: android

我目前在我的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);
        }
    }

2 个答案:

答案 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();
 }