我的应用程序中有一个网络监视器(使用广播接收器),如果手机没有连接到互联网,它会弹出一个警报对话,如果手机连接回来,它会弹出另一个警报通知用户他重新上线。问题是每次监视器看到状态更改时,它会创建另一个窗口,堆叠在另一个窗口之上。例如,如果手机的DATA ON / OFF 3次,则会弹出6条信息。如果有另一个警告对话框打开或有什么方法可以解决这种情况,有没有办法解除警告对话框?
提前感谢您,非常感谢您的帮助。 Android新手
答案 0 :(得分:1)
添加包含当前可见对话框的变量:
Alertdialog a;
然后当你想要展示一个:
if (a!=null) {
a.cancel();
}
a = yourDialogBuilder.show();
希望这有帮助。
答案 1 :(得分:0)
Dialog有一个isShowing()方法,如果对话框当前可见,则应该返回该方法。因此,您可以使用它来查看是否显示对话框并使用dismissDialog()隐藏它。
答案 2 :(得分:-1)
我认为您应该考虑重新设计通知机制。使用Dialog
可能会对用户体验造成极大的干扰,因为它需要采取措施来解雇和中断应用程序的自然流程。
如果您希望在状态栏中显示简单通知,请考虑使用Toast
或Notification
。此外,您可以在应用程序中添加一些反映当前连接状态的图标,例如绿色已连接,否则为红色。
要确保只有一个对话框可用,您可以在static
中创建对话框的activity
实例,如果在显示新对话框之前不是null
则将其关闭1} p>