首页 > 解决方案 > 如何停止每次从处理程序显示的相同警报对话框?

问题描述

我有一个AlertDialogon 方法,该方法在Handler. Handler每次运行时也AlertDialog一次又一次地加载,如果对话框仍然显示我不想再次加载它,我想显示一次对话框。为此,我有以下代码但无法正常工作。

     Handler handler = new Handler();
      Runnable runnable = new Runnable() {
        @Override
          public void run() {
            handler.postDelayed(this, 1000);
            checkCountry();
        }

    };
    handler.postDelayed(runnable, 1000);




public void checkCountry() {

            alertDialogueBuilder = new     AlertDialog.Builder(MainActivity.this);
            alertDialogueBuilder.setTitle("VPN Detected!");
                      alertDialogueBuilder.setMessage("Please Turn Of VPN To Continue!");
   alertDialogueBuilder.setIcon(R.drawable.errorstop);
      alertDialogueBuilder.setCancelable(false);
            alertDialogueBuilder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            });
            AlertDialog alertDialog =     alertDialogueBuilder.create();

            if(alertDialog.isShowing()){
             //Do Something
            }else{
             alertDialog.show();
            }
   }

标签: javaandroidandroid-alertdialog

解决方案


要仅显示 1 次对话框,请仅调用要从中显示此对话框的 checkCountry() 方法。并且,请删除处理程序代码。这里不需要使用 Handler。仅使用 checkCountry() 方法来显示对话框。


推荐阅读