带广播接收器的android alertdialog
我的应用程序中有一个网络监视器(使用广播接收器),它做什么?如果手机未连接到互联网,它会弹出一个警报对话框。如果手机重新连接,它会弹出另一个警报,通知用户他已重新联机。问题是,每次监视器看到状态更改时,它都会创建另一个窗口,该窗口堆叠在另一个窗口的顶部。例如,如果手机的数据打开/关闭3次,它将弹出6条消息。如果打开另一个警报对话框,是否有办法取消警报对话框,或者克服这种情况的最佳方法是什么 提前谢谢你,非常感谢你的帮助。带广播接收器的android alertdialog,android,broadcastreceiver,android-alertdialog,progressdialog,Android,Broadcastreceiver,Android Alertdialog,Progressdialog,我的应用程序中有一个网络监视器(使用广播接收器),它做什么?如果手机未连接到互联网,它会弹出一个警报对话框。如果手机重新连接,它会弹出另一个警报,通知用户他已重新联机。问题是,每次监视器看到状态更改时,它都会创建另一个窗口,该窗口堆叠在另一个窗口的顶部。例如,如果手机的数据打开/关闭3次,它将弹出6条消息。如果打开另一个警报对话框,是否有办法取消警报对话框,或者克服这种情况的最佳方法是什么 提前谢谢你,非常感谢你的帮助。 Android新手对话框有一个方法,如果对话框当前可见,则应返回该方法。因
Android新手对话框有一个方法,如果对话框当前可见,则应返回该方法。因此,您可以使用它查看对话框是否正在显示,并使用dismissDialog()将其隐藏我认为你应该考虑重新设计你的通知机制。使用
对话框
可能会对用户体验造成很大干扰,因为它需要一个动作来关闭和中断应用程序的自然流程
考虑使用Toast
进行简单通知,或者如果希望在状态栏中显示通知,可以使用Notification
。此外,您的应用程序中可以有一些反映当前连接状态的图标,例如绿色表示已连接,红色表示已连接
为了确保只有一个对话框可用,您可以在
活动中创建对话框的静态
实例,并在显示新对话框之前,如果该对话框不为空
,则将其关闭。添加包含当前可见对话框的变量:
Alertdialog a;
然后,当您想要显示一个:
if (a!=null) {
a.cancel();
}
a = yourDialogBuilder.show();
希望这能有所帮助。我曾考虑过祝酒和通知,但最终还是使用了警报,事实上,警报的静态实例才是最好的选择。有人在你面前提出了同样的建议。我会投票支持你,但我现在还不能:)。谢谢你花时间帮我。