我已经将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]; }