Android 后退按钮不可用';显示AlertDialog时不工作

Android 后退按钮不可用';显示AlertDialog时不工作,android,android-alertdialog,back-button,Android,Android Alertdialog,Back Button,我想在按下“后退”按钮时销毁当前页面,但在显示AlertDialog时,“后退”按钮不起作用。 我已经实现了如下所示的onBackPressed,但它仍然不起作用 private void showPopupSubscribe() { AlertDialog.Builder builder = new AlertDialog.Builder(this); View dialogView = getLayoutInflater().inflate(R.layout.paket_s

我想在按下“后退”按钮时销毁当前页面,但在显示AlertDialog时,“后退”按钮不起作用。
我已经实现了如下所示的onBackPressed,但它仍然不起作用

 private void showPopupSubscribe() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View dialogView = getLayoutInflater().inflate(R.layout.paket_subscribe, null);
    builder.setView(dialogView);
    builder.setCancelable(false);
    builder.setIcon(R.drawable.logo_1);
    builder.setTitle(R.string.confirm);
    final RadioGroup radioGroup = dialogView.findViewById(R.id.rgSubscribe);

    builder.setPositiveButton("Next", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            pd.show();
            int selected = radioGroup.getCheckedRadioButtonId();
            if (selected == R.id.rbMonthly) {
                smsCode = "aa";
            } else if (selected == R.id.rbTwoWeeks) {
                smsCode = "bb";
            } else if (selected == R.id.rbWeekly) {
                smsCode = "cc";
            } else if (selected == R.id.rbTwoDays) {
                smsCode = "dd";
            }
            reqWebCharging(smsCode);
            dialog.dismiss();
        }
    });

    dialog = builder.create();
    dialog.show();
}

@Override
public void onBackPressed() {
    super.onBackPressed();

    if (dialog.isShowing()) {
        finish();
    }
}
这样做

@Override
public void onBackPressed() {

    if (dialog.isShowing()) {
        finish();
    else
        super.onBackPressed();

    }
}

当对话框显示时,您必须处理后退按钮的按下

dialog.setOnKeyListener(new Dialog.OnKeyListener() {

            @Override
            public boolean onKey(DialogInterface arg0, int keyCode,
                    KeyEvent event) {
                // TODO Auto-generated method stub
                if (keyCode == KeyEvent.KEYCODE_BACK) {

                    dialog.dismiss();
                    finish();
                }
                return true;
            }
        });
另外,onBackPressed()应该是这样的

@Override
public void onBackPressed() {
    super.onBackPressed();
     finish();
}

我的意思是onBackPressed方法不起作用,即使我调试这个应用程序并将断点放在onBackPressed旁边,然后当我按back按钮时,我的应用程序不会在断点处停止。当你按back按钮时会发生什么?什么都没有?我很高兴它起作用了,请把答案投上去,这样其他人也可以参考它