Android 如何防止创建多个对话框实例,以便我可以清楚地忽略()?

Android 如何防止创建多个对话框实例,以便我可以清楚地忽略()?,android,android-alertdialog,Android,Android Alertdialog,我有一个Bluetooth回调,它有时会触发两次,使处理对话框实例变得很难disclose() 我在全局中声明加载程序实例 LoaderProgress mLConnectdialogLoader = new LoaderProgress(InsoleConnection.this); 我触发名为“连接…”的对话框5秒钟,然后关闭 new Handler().postDelayed(new Runnable() { @Override

我有一个
Bluetooth
回调,它有时会触发两次,使处理对话框实例变得很难
disclose()

我在全局中声明
加载程序
实例

LoaderProgress mLConnectdialogLoader = new LoaderProgress(InsoleConnection.this);
我触发名为“连接…”的对话框5秒钟,然后关闭

new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {
                    mLConnectdialogLoader.dismiss()
                    }
  },5000);
  mLConnectdialogLoader.show("Connecting...")
如何防止同一实例被调用两次,这样我就可以避免在关闭对话框时遇到困难

if(!mLConnectdialogLoader.isShowing())
      mLConnectdialogLoader.show("Connecting...")
在DialogLoader类中:

public boolean isShowing() { return dialog.isShowing(); }

只需创建一个bool并检查其状态:

boolean isShown=false;   

 new Handler().postDelayed(new Runnable() {

                        @Override
                        public void run() {
                        mLConnectdialogLoader.dismiss();
                        isShown=false;
                        }
      },5000);

    if(!isShown){
    mLConnectdialogLoader.show("Connecting...");
    isShown= true;
    }

如果我有问题,你可以把“对话框创建代码”放在一个同步的方法中 了解更多有关它的信息

您可以添加一个标志,指示您的对话框是否已可见,或者如果您的类从AlertDialog扩展,则使用dialog.isShowing()。首先,触发两次操作是否正确?@TharakaNirmana:有一个可扩展的设备,我们已编程为在特定时间(毫秒)内未连接时再次连接。没有isShowing()我的普通LoaderProgress classdialog.isShowing()中的方法正在引发nullpointer异常。我应该做任何初始化吗?