带有广播接收器的android alertdialog

时间:2013-02-12 17:17:49

标签: android broadcastreceiver alertdialog progressdialog

我的应用程序中有一个网络监视器(使用广播接收器),如果手机没有连接到互联网,它会弹出一个警报对话,如果手机连接回来,它会弹出另一个警报通知用户他重新上线。问题是每次监视器看到状态更改时,它会创建另一个窗口,堆叠在另一个窗口之上。例如,如果手机的DATA ON / OFF 3次,则会弹出6条信息。如果有另一个警告对话框打开或有什么方法可以解决这种情况,有没有办法解除警告对话框?

提前感谢您,非常感谢您的帮助。 Android新手

3 个答案:

答案 0 :(得分:1)

添加包含当前可见对话框的变量:

            Alertdialog a;

然后当你想要展示一个:

if (a!=null) {
    a.cancel();
}
a = yourDialogBuilder.show();

希望这有帮助。

答案 1 :(得分:0)

Dialog有一个isShowing()方法,如果对话框当前可见,则应该返回该方法。因此,您可以使用它来查看是否显示对话框并使用dismissDialog()隐藏它。

答案 2 :(得分:-1)

我认为您应该考虑重新设计通知机制。使用Dialog可能会对用户体验造成极大的干扰,因为它需要采取措施来解雇和中断应用程序的自然流程。

如果您希望在状态栏中显示简单通知,请考虑使用ToastNotification。此外,您可以在应用程序中添加一些反映当前连接状态的图标,例如绿色已连接,否则为红色。

要确保只有一个对话框可用,您可以在static中创建对话框的activity实例,如果在显示新对话框之前不是null则将其关闭