URLMonitor не обнаруживает, когда Интернет не доступен во Flex

public static var iStatus:Boolean;

public static function initMonitor():void 
{
    var url:URLRequest = new URLRequest('http://www.nature.com') ;
    url.method = "HEAD";
    _monitor = new URLMonitor(url);
    _monitor.addEventListener(StatusEvent.STATUS, announceStatus);
    _monitor.pollInterval = 1000;
    _monitor.start();

}

public static function  announceStatus(event:StatusEvent):void 
{
    if(_monitor.available)
    {
        iStatus=true;
    }
    else
    {
        iStatus=false;
    }
}

Проблема в том, что когда я изначально запускаю приложение без подключения к интернету, оно возвращает статус false, Если я включаю интернет, он возвращает статус true, Но если я снова отключу интернет-соединение, оно не вернет статус false, В этот момент он не входит в announceStatus метод.

Я думаю announceStatus должен вызываться каждый раз, когда интернет-соединение включается или выключается, но это не работает так. Любые предложения будут полезны.

1 ответ

public static var iStatus:Boolean;

public static function initMonitor():void 
{
    NativeApplication.nativeApplication.addEventListener(Event.NETWORK_CHANGE, onNetworkChange);
    onNetworkChange();
}

protected function onNetworkChange(e:Event):void
{
    _monitor = new URLMonitor(new URLRequest('http://www.nature.com'));
    _monitor.addEventListener(StatusEvent.STATUS, announceStatus);
    _monitor.pollInterval = 1000;
    _monitor.start();
}

public static function announceStatus(event:StatusEvent):void 
{
    if(_monitor.available)
    {
        iStatus=true;
    }
    else
    {
        iStatus=false;
    }
}
Другие вопросы по тегам