背景网络检查

时间:2011-12-08 11:32:17

标签: iphone objective-c ios xcode ipad

我有一个应用程序,只要有一些活动(如视图更改),就会显示网络可用性。但是,我正在寻找在后台运行的代码来检查网络可用性,即使我将在同一屏幕上闲置,它必须显示“网络不可用/网络可用”的消息

1 个答案:

答案 0 :(得分:2)

我使用这段代码来检测网络可用性。我基本上宣布当地的变量来弄清楚我是在WiFi还是3G网络或是否有互联网。

通知会在某些时间间隔发生。更新这些变量。您可以访问这些BOOL变量来了解状态。

- (void)checkNetworkStatus:(NSNotification *)notice
{
    // called after network status changes
    NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];

    switch(internetStatus)
    {
        case NotReachable:
        {
            //NSLog(@"The internet is down.");
            self.internetActive = NO;
            break;
        }
        case ReachableViaWiFi:
        {
            //NSLog(@"The internet is working via WIFI.");
            self.internetActive = YES;
            break;
        }
        case ReachableViaWWAN:
        {
            //NSLog(@"The internet is working via WWAN.");
            self.internetActive = YES;
            break;
        }
    }

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
    switch (hostStatus)
    {
        case NotReachable:
        {
            //NSLog(@"A gateway to the host server is down.");
            self.hostActive = NO;
            break;
        }
        case ReachableViaWiFi:
        {
            //NSLog(@"A gateway to the host server is working via WIFI.");
            self.hostActive = YES;
            break;
        }
        case ReachableViaWWAN:
        {
            //NSLog(@"A gateway to the host server is working via WWAN.");
            self.hostActive = YES;
            break;
        }
    }
    return;
}