确认返回提示退出应用

Confirm back prompt to exit app

我目前正在开发一个应用程序,该应用程序大量使用 android 设备的后退按钮。我想知道如何检查 activity 是否是最后一个,如果用户再次按下,它不会退出应用程序,除非用户再次按下,就像 9gag 应用程序一样。

谢谢!

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle("Closing Activity")
        .setMessage("Are you sure you want to close this activity?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            finish();    
        }

    })
    .setNegativeButton("No", null)
    .show();
}

这里举例:

private boolean doubleBackToExitPressedOnce;
@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    }
    if (doubleBackToExitPressedOnce) {
        super.onBackPressed();
    }

    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, this.getResources().getString(R.string.exit_toast), Toast.LENGTH_SHORT).show();

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            doubleBackToExitPressedOnce = false;
        }
    }, 2000);
}

DrawerLayout 块是可选的。

使用方法 Activity.isTaskRoot() 您可以检查用户是否会在按下后退按钮时退出应用程序。

然后您只需覆盖 onBackPressed() 以不同于平常的方式处理它。

这对 Backpressed 方法无效

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle("Closing Activity")
        .setMessage("Are you sure you want to close this activity?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which) {
            finish();    
        }

    })
    .setNegativeButton("No", null)
    .show();
}