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异常。我应该做任何初始化吗?