我使用NetworkReachability
找出我的应用程序的连接状态:
NetworkReachability(this.currentHostUrl);
remoteHostReachability.SetNotification(this.ReachabilityChanged);
remoteHostReachability.Schedule(CFRunLoop.Current, CFRunLoop.ModeDefault);
回调方法如下:
void ReachabilityChanged(NetworkReachabilityFlags flags)
{
this.reachable = (flags & NetworkReachabilityFlags.Reachable) > 0;
UIHelpers.GetAppDelegate().UpdateConnectivityToast(this.reachable);
}
现在,如果我切换到飞行模式 ,回调立即调用和标志参数为0。然后,它再次触发后不久的标志
ConnectionRequired|IsWWAN|Reachable|TransientConnection
如果我打开飞行模式的时候 ,我得到另一个0,然后再把
Reachable
如果我打开wifi关闭和3G踢 ,结果是:
IsWWAN|Reachable|TransientConnection
这似乎是检查Reachable
是不够的。 但是,这里的逻辑是什么? 什么ConnectionRequired
和TransientConnection
是什么意思?