如何防止创建多个Dialog实例,以便我可以干净地解除()?

时间:2015-11-09 10:51:26

标签: android android-alertdialog

我有dismiss()回调,有时会触发两次,并且难以处理对话框实例Loader

我在Global

中声明了LoaderProgress mLConnectdialogLoader = new LoaderProgress(InsoleConnection.this); 个实例
new Handler().postDelayed(new Runnable() {

                    @Override
                    public void run() {
                    mLConnectdialogLoader.dismiss()
                    }
  },5000);
  mLConnectdialogLoader.show("Connecting...")

我触发名为“正在连接...”的对话5秒钟,然后解散。

<div class="container-explore">
    <div class="half-col half-map">
        <div class="header-map" id="map"></div>
    </div>

    <div class="half-col half-list">
      ....
    </div>
</div>

如何防止同一个实例被调用两次,这样我就可以避免在解除对话框时遇到困难。

3 个答案:

答案 0 :(得分:1)

if(!mLConnectdialogLoader.isShowing())
      mLConnectdialogLoader.show("Connecting...")

在DialogLoader类中:

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

答案 1 :(得分:1)

只需创建一个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;
    }

答案 2 :(得分:1)

如果我有问题,你可以把#34;对话框创建coode&#34;在同步方法中 了解更多相关信息 http://tutorials.jenkov.com/java-concurrency/synchronized.html