Xamarin.ios Monotouch—网络状态更改时收到通知
我熟悉“可达性”类来检查是否存在internet连接: 我现在想知道,当网络状态发生变化时,是否有办法得到通知? 假设我的收藏是在没有互联网的情况下加载的。图像将无法加载。如果iPad突然重新连接互联网,我想再次触发下载 在可达性类中,我看到以下代码:Xamarin.ios Monotouch—网络状态更改时收到通知,xamarin.ios,xamarin,Xamarin.ios,Xamarin,我熟悉“可达性”类来检查是否存在internet连接: 我现在想知道,当网络状态发生变化时,是否有办法得到通知? 假设我的收藏是在没有互联网的情况下加载的。图像将无法加载。如果iPad突然重新连接互联网,我想再次触发下载 在可达性类中,我看到以下代码: 公共静态事件事件处理程序可达性已更改; 静态void OnChange(NetworkReachabilityFlags标志) { var h=可达性改变; 如果(h!=null) h(null,EventArgs.Empty); } 但是,
公共静态事件事件处理程序可达性已更改;
静态void OnChange(NetworkReachabilityFlags标志)
{
var h=可达性改变;
如果(h!=null)
h(null,EventArgs.Empty);
}
但是,如果我在“OnChange”方法中设置了断点,那么在我关闭Wifi时不会调用它
有什么想法吗
在这方面,Matt您应该能够简单地向ReachabilityChanged事件添加一个事件处理程序,比如(未编译的测试)
Reachability.ReachabilityChanged+=c_ReachabilityChanged;
静态无效c_可达性更改(对象发送方,事件参数e)
{
WriteLine(“在这里我可以处理网络可达性的改变。”);
}
好的,我应该自己找到答案
在收到通知之前,应首先调用以下函数:
Reachability.InternetConnectionStatus ();
Reachability.LocalWifiConnectionStatus ();
Reachability.RemoteHostStatus ();
调用这3个静态函数调用将初始化所有必要的对象。这3个对象将在发生更改时得到通知,并在可访问性调用(通知事件处理程序)中调用“OnChange”
(当然,更好的方法是创建一个特殊的函数来初始化所有需要的对象,这样您就不需要调用这3个函数,因为它们实际上已经在测试网络连接了)只要调用它就可以了,可以用AppDelegate编写
Reachability.RemoteHostStatus ();
Reachability.ReachabilityChanged += ReachabilityChanged;
static void ReachabilityChanged(object sender, EventArgs e){//Do Something};
我知道如何添加事件处理程序,但“OnChange”中从未调用断点,因此它也不会触发事件。我在模拟器上测试它,关闭笔记本电脑的Wifi,在设备上启动应用程序,进入设置关闭Wifi,然后返回应用程序。我不确定我的测试场景是否良好。@马特,对不起,可能误解了你当时的要求,断开笔记本电脑应该可以进行测试。如果那门课对你不起作用,你可以去监控网络状态。你误解它并不奇怪,因为我的话有点让人困惑(我改变了它)。您提供的链接是针对Android(monodroid),而不是针对iOS(monotouch)。不管怎样,我还是将你的链接加入了书签,因为如果我想将我的应用程序移植到Android上,我可以使用它:-)@Matt Good,你找到了解决方案,我应该停止在烹饪时发布答案,以减少困惑;)