后退按钮和上次活动

sup*_*d77 10 android

我的应用链接一些活动.

如果你按下后退按钮,你会回到旧的活动然后你突然退出应用程序!

所以如果它是堆栈上的最后一个活动,我需要显示一条消息,例如"你真的要退出吗"

我知道如何覆盖后退按钮,但我无法知道如何知道历史记录中有多少活动

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // Is it the last activity on stack ? 
        // so show confirm dialog
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Jor*_*sys 14

你可以使用finish()函数实现这一点

public void finish() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("do you really want to exit?");
        builder.setCancelable(false);
        builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                quit();
            }
        });
        builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
    }

    public void quit() {
        super.finish();
    };
Run Code Online (Sandbox Code Playgroud)