苹果的可达性类Reachability,在用户将设备置于飞行模式时,通知似乎会有相当大的延迟。我看到用户进入飞行模式和实际通知之间大约有5秒钟的时间差。
是否有更快的通知方式?或者在这个操作系统中有新的方法吗?
是否有更快的通知方式?或者在这个操作系统中有新的方法吗?
我建立了一个示例,它轮询连接性而不是依赖通知。因此,通过简单地使用可达性示例并检查连接性,您可以确定是否仍然连接。
- (NetworkStatus)currentReachabilityStatus
{
NSAssert(_reachabilityRef != NULL, @"currentNetworkStatus called with NULL SCNetworkReachabilityRef");
NetworkStatus returnValue = NotReachable;
SCNetworkReachabilityFlags flags;
if (SCNetworkReachabilityGetFlags(_reachabilityRef, &flags))
{
if (_alwaysReturnLocalWiFiStatus)
{
returnValue = [self localWiFiStatusForFlags:flags];
}
else
{
returnValue = [self networkStatusForFlags:flags];
}
}
return returnValue;
}
这样你就可以知道连接状态,而不是希望及时收到通知。