当用户将设备置于飞行模式时,Apple Reachability 示例代码中的 Reachability 类似乎会延迟触发。我看到用户进入飞行模式和实际通知之间大约有 5 秒的差距。
有没有更快的方法来获取通知?还是这个操作系统上的新方法?
当用户将设备置于飞行模式时,Apple Reachability 示例代码中的 Reachability 类似乎会延迟触发。我看到用户进入飞行模式和实际通知之间大约有 5 秒的差距。
有没有更快的方法来获取通知?还是这个操作系统上的新方法?
我构建了一个示例来轮询连接而不是依赖通知。因此,只需使用 Reachability 示例并检查连接性,您就可以确定您是否仍处于连接状态。
- (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;
}
通过这种方式,您可以知道连接状态是什么,而不是希望按时收到通知。