如何检查互联网/网络连接是否可用,但仅限一次

时间:2014-06-02 10:29:18

标签: actionscript-3 flex flex4.6

如何检查互联网连接是否可用但仅适用于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

2 个答案:

答案 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
    }
}