我有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>
如何防止同一个实例被调用两次,这样我就可以避免在解除对话框时遇到困难。
答案 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