如何检查互联网连接是否可用但仅适用于ONCE(一次性)。 请记住仅执行一次
我正在使用以下代码,但它会持续监控互联网连接的可用性。 我想只运行一次(执行)。在布尔类型变量的帮助下,我该怎么做或者有一种方法来检查它已被执行的函数?
我已经尝试了循环(i = 0到i = 1),但每次都会使我的应用程序崩溃。
private function init():void
{
NativeApplication.nativeApplication.addEventListener(Event.NETWORK_CHANGE, onNetworkChange);
monitorConnection();
}
private function onNetworkChange(event:Event):void
{
trace('network change');
monitorConnection();
}
private function monitorConnection():void
{
monitor = new URLMonitor(new URLRequest(strURLMonitor));
monitor.addEventListener(StatusEvent.STATUS,announceStatus);
monitor.start();
}
private function announceStatus(e:StatusEvent):void {
trace("Status change. Current status: " + monitor.available);
if(monitor.available)
{
// Do something
} else {
// Do something else
}
}
任何帮助都将受到极大的赞赏
谢谢 Udit Bhardwaj
答案 0 :(得分:3)
最佳做法是ping一些总是在线的服务器 - 例如谷歌:) 它既简单又快捷。 URLMonitor用于监控,而不是用于测试..并且没有内置功能仅用于单个测试。
使用简单的URLLoader:)
答案 1 :(得分:-1)
Just do ...“monitor.removeEventListener(StatusEvent.STATUS,announceStatus);”并且只调用一次monitorConnection();
private function monitorConnection():void
{
monitor = new URLMonitor(new URLRequest(strURLMonitor));
monitor.addEventListener(StatusEvent.STATUS,announceStatus);
monitor.start();
}
private function announceStatus(e:StatusEvent):void {
monitor.removeEventListener(StatusEvent.STATUS,announceStatus);
trace("Status change. Current status: " + monitor.available);
if(monitor.available)
{
// Do something
} else {
// Do something else
}
}