我已经将Apple的Reachability示例合并到我自己的项目中,这样我就知道我是否有网络连接 - 如果我没有网络连接,我就不会费心发送和请求。我决定采用状态通知实现,因为在后台更新可达性并立即提供当前结果似乎更容易,而不是每当我想要建立网络连接时启动同步请求。
我的问题是,在 EDGE 网络上时,我开始收到漏报 - 手机具有连接性,但应用程序认为情况并非如此。我的理解是,在 EDGE 连接时您不会收到通知,因此我的假设是我在某个时刻丢失并重新获得了连接。重新启动应用程序通常足以查看网络连接。
这不是最佳解决方案,所以我想知道是否有其他人遇到过这个问题并对解决方案有任何想法。
(我不知道这是否也适用于 3G;我正在运行第一代 iPhone)。
最佳答案
对于我来说,对于检测 Wi-Fi 而言,可达性通知似乎也不可靠。所以我只是使用轮询来代替。每 5 秒检查一次似乎没有什么坏处。
- (void) checkReachability {
BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork);
// Do something...
[self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0];
}
关于iphone - 确定 iPhone 上的 EDGE 连接断开后何时恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181485/