代码之家  ›  专栏  ›  技术社区  ›  Jablair

确定退出iPhone后边缘连接何时恢复

  •  10
  • Jablair  · 技术社区  · 16 年前

    我已经将苹果的可访问性示例加入到我自己的项目中,这样我就知道我是否有网络连接——如果我没有网络连接,我就不需要发送和请求。我决定使用状态通知实现,因为在后台更新可达性并立即获得当前结果似乎更容易,而不是在我想建立网络连接时启动同步请求。

    我的问题是,当我在边缘网络上时,我开始得到错误的否定-手机有连接,但应用程序认为情况并非如此。我的理解是,当边缘连接时,您不会收到通知,所以我的假设是我在某个时刻丢失并恢复了连接。重新启动应用程序通常足以看到网络连接。

    这不是一个最佳的解决方案,所以我想知道是否有其他人遇到了这个问题并对解决方案有任何想法。

    (我不知道这是否也适用于3G;我运行的是第一代iPhone)。

    2 回复  |  直到 11 年前
        1
  •  14
  •   Chris Lundie    16 年前

    对于我来说,可到达性通知对于检测Wi-Fi似乎也不可靠。所以我只使用投票。每5秒钟检查一次似乎没有什么害处。

    - (void) checkReachability {
        BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork);
    
        // Do something...
    
        [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0];
    }
    
        2
  •  1
  •   Vikas S Singh Poorva    11 年前

    网络上有一个很好的可达性示例。它工作得非常好: http://servin.com/iphone/iPhone-Network-Status.html

    但你看,当我试图用我自己的方式使用它时,它只是炸弹。

    尝试使用以下方法实现:

    NSString *sCellNetwork;     
     NSString *sNetworkReachable;  
    
    if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN)
    
    {do it} 
    
     else {
       Network fail alert; 
    }