【问题标题】:Alert dialog not dismiss when application goes background in Android当应用程序在 Android 中进入后台时,警报对话框不会关闭
【发布时间】:2020-12-18 14:26:20
【问题描述】:

我使用了以下代码:

Alertdialog alertDialog =null;
AlertDialog.Builder builder=new Builder(this);
        builder.setTitle(title);
        builder.setMessage(message);

        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {

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

当我单击主页键(“确定”按钮中没有任何用户事件)时,我使用以下代码关闭警报对话框:

@Override
    protected void onPause() {

            if(alertDialog != null){
               alertDialog.dismiss();
            }

        }

        super.onPause();
    }

当重新启动应用程序时,警告对话框不会消失。

我做错了什么?

【问题讨论】:

  • 我不想在启动活动时显示警报对话框。我想关闭。
  • 您在 onCreate 中尝试过相同的代码而不是 onPause?
  • 我们如何在 Oncreate() 中进行警报解除?因为当我们在单击主页键后重新启动应用程序时仅调用 OnStart() 方法。我在 OnStart() 中使用解除方法不会得到我的结果.
  • 当你的应用程序从 bg 回到前面时也会调用 onresume

标签: android android-alertdialog android-dialog


【解决方案1】:

问题是你在这里创建了两个 AlertDialog 实例:

alertDialog=builder.create();
builder.create().show();

然后你在实际上没有显示的对话框上调用了dismiss()。 这应该可以解决问题:

alertDialog=builder.show();

【讨论】:

    【解决方案2】:

    我在 onPause() 中调用了 dismiss(),但它不起作用,因为我将变量设置为 static。

    当我删除 static 字时,此问题已解决...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 2018-04-11
      相关资源
      最近更新 更多