【问题标题】:Android, How can I close app when in dialog back button is clicked?Android,单击对话框后退按钮时如何关闭应用程序?
【发布时间】:2023-03-30 05:35:01
【问题描述】:

在我的主要活动中,我调用了一个可取消的对话框。当用户在未连接到 Internet 时午餐应用程序时,我会显示此对话框。因此,我显示此对话框以要求他连接到 Internet。

此对话框没有按钮,我想在用户单击返回按钮时关闭应用程序。在onKeyDown() 方法中,我正在关闭应用程序(this.finish();),但问题是当用户单击后退按钮时屏幕上显示对话框时,此对话框消失并显示我的主要活动。

似乎 onKeyDown() 只在主要活动中工作,而不是在对话框中工作。显示对话框并且用户单击返回按钮时如何关闭我的应用程序?

谢谢

=====> 更新

这是我的自定义对话框的代码:

private void initWarningDialog(){
        dialogWarning = new Dialog(DRMActivity.this, R.style.customDialogStyle);
        dialogWarning.setTitle("Warning!");
        dialogWarning.setContentView(R.layout.dialogwarning);
        dialogWarning.setCancelable(true);
    }

【问题讨论】:

    标签: android dialog activity-finish


    【解决方案1】:

    只调用finish()方法:

    dialog.setPositiveButton("Ok",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // Finish activity
                finish();
            }
        });
    

    更新:

    由于您有自定义对话框,我建议您设置 OnCancelListner,例如:

    dialogWarning.setOnCancelListener(new OnCancelListener() {
                @Override
                public void onCancel(DialogInterface dialog) {
                    // TODO Auto-generated method stub                  
    
                    finish();
                }
     });
    

    更新 2:

    这真的很烦人,因为用户如何知道他是否按下后退键然后实际活动将关闭。相反,您应该提供至少“确定”按钮让用户点击。

    【讨论】:

    • 感谢 Paresh,但我不能,因为我的对话框是自定义对话框并且没有按钮。我更新了我的上述问题。
    • @Hesam,亲爱的,请始终牢记,每当您提出问题时,请使用您的代码和 logcat 输出。
    • 他在问题中提到对话框没有按钮,并且在按下返回按钮时对话框消失。
    • 这真的很烦人,因为用户如何知道他是否按下后退键然后实际活动将关闭。相反,您应该提供至少“确定”按钮让用户点击。
    【解决方案2】:

    使用setOnCancelListener 为对话框设置OnCancelListener 并在OnCancelListener 的onCancel 方法中完成活动。

    【讨论】:

      【解决方案3】:

      OnCancelListener 可能很有用。

       alert.setOnCancelListener(new OnCancelListener() {
                  @Override
                  public void onCancel(DialogInterface dialog) {
                      // TODO Auto-generated method stub                  
      
                      finish();
                  }
       });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多