可达性:两次调用TryGetFlags时为空标志
本文关键字:TryGetFlags 标志 调用 两次 可达性 | 更新日期: 2023-09-27 18:18:05
我有这个代码来测试网络连接:
if (remoteHostReachability == null) {
remoteHostReachability = new NetworkReachability (HostName);
// Need to probe before we queue, or we wont get any meaningful values
// this only happens when you create NetworkReachability from a hostname
reachable = remoteHostReachability.TryGetFlags (out flags);
//remoteHostReachability.SetCallback (OnChange);
remoteHostReachability.SetNotification (OnChange);
remoteHostReachability.Schedule (CFRunLoop.Current, CFRunLoop.ModeDefault);
} else {
reachable = remoteHostReachability.TryGetFlags (out flags);
}
第一次调用时,标志是可以的。但是,当第二次调用它时,标志总是等于 0 。在iOS模拟器5.0上测试。
有什么问题吗?在苹果和Xamarin的例子中,NetworkReachability只创建一次。
我发现当使用可达性时,而不是测试远程状态,我只是确保主机是可达的。
Reachability.HostName = "www.google.com";
var reachable = (Reachability.InternetConnectionStatus() != NetworkStatus.NotReachable) && Reachability.IsHostReachable("www.google.com");