Monotouch - 在网络状态发生变化时收到通知

Mat*_*att 3 xamarin.ios xamarin

我熟悉"可达性"类来检查是否存在互联网连接:https: //github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs

我现在想知道在网络状态发生变化时是否有任何方法可以获得通知?假设在没有互联网的情况下加载我的收藏品.图像不会被加载.如果iPad突然再次连接互联网,我想再次触发下载.

在reachability类中,我看到以下代码:

public static event EventHandler ReachabilityChanged;

    static void OnChange (NetworkReachabilityFlags flags)
    {
        var h = ReachabilityChanged;
        if (h != null)
            h (null, EventArgs.Empty);
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果我在"OnChange"方法中设置断点,则在关闭Wifi时不会调用它.

有任何想法吗?

问候,马特

Mat*_*att 7

好吧,我应该自己找到答案.

在收到通知之前,您应先调用以下功能:

Reachability.InternetConnectionStatus (); 
Reachability.LocalWifiConnectionStatus ();
Reachability.RemoteHostStatus ();
Run Code Online (Sandbox Code Playgroud)

调用这3个静态函数调用将初始化所有必需的对象.这些3个对象将在更改时收到通知,并在可达性调用中调用"OnChange"(通知您的事件处理程序).

(当然,更好的是创建一个特殊的函数来初始化所有需要的对象,这样你就不需要调用这3个函数,因为它们已经真正测试了网络连接)