xamarin.ios - Monotouch - 当网络状态改变时得到通知

标签 xamarin.ios xamarin

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

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

在可达性类中,我看到以下代码:

public static event EventHandler ReachabilityChanged;

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

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

有什么想法吗?

问候,马特

最佳答案

好吧,其实我应该自己找到答案的。

在收到通知之前,您应该先调用以下函数:

Reachability.InternetConnectionStatus (); 
Reachability.LocalWifiConnectionStatus ();
Reachability.RemoteHostStatus ();

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

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

关于xamarin.ios - Monotouch - 当网络状态改变时得到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337014/

相关文章:

ios - 升级到 MonoTouch 6 后自动旋转停止工作

localization - 在 MvvmCross ViewModels 中本地化文本

android - 带有 AndroidSDK API 19 及更低版本的 Xamarin.Android 的放大 float 操作按钮的阴影填充错误

xamarin - 如何使用 PCL 使用 Xamarin Forms 与 Xamarin iOS 和 Xamarin Android 应用程序分开处理来自 iOS 和 Android 的按钮单击

f# - MonoFramework 的 FSharp 项目的目标?

xamarin.ios - 如何在 monotouch 中使用 objc_setAssociatedObject

ios - 属性字符串

ios - 在 iOS 中以编程方式减少由于后台事件而导致的电池消耗

android - Google Play 商店(Beta 测试)中的应用程序显示 "App not compatible with your devices"

c# - 如何使用 xamarin 以编程方式制作按钮?