当应用程序被带到前台时,iOS 可达性是否检测到网络变化

Does iOS reachability detect network changes when app is brought to foreground

我开发了一个 iOS 7 应用程序。 在我的应用程序中,我需要检测网络连接是否发生变化(3g \ wifi \ 等)。 如果是这样,我会重新连接我的服务。

我无法弄清楚可达性是否可以在应用程序重新回到前台后检测到网络连接的变化。

假设以下情况:

  1. 应用已启动

  2. 用户将应用移至后台,继续访问 Facebook

  3. 应用已暂停

  4. 用户从 3g 切换到 wifi

  5. 用户 returns 到我的应用程序

可达性是否会检测到此连接更改?

使用Rechability 类,因为你可以找到所有这样的notifications/functionalities。希望对您有所帮助。

我有一个应用程序必须连接到 WiFi 并检测接入点何时更改或它在所有依赖它的视图控制器上断开连接。我使用可达性通知机制。

对于我的应用程序,可达性会在我将应用程序重新置于前台时检测到 WiFi 变化。所以它确实会做你想做的事。

我不得不说,我还没有发现 Reachability 是 100% 可靠的。大部分时间它都按您预期的那样工作,但并不完美。

作为备份,我在大多数视图控制器上 viewWillAppear 中检查当前网络。当应用程序返回前台时,这无济于事,因为据我所知, viewWillAppear 没有被调用。不过,您可以检测到应用程序委托中的更改。

如果我没理解错的话,您可以在每次应用进入前台时检查可达性,例如:

- (void)applicationWillEnterForeground:(UIApplication *)application
{
//Check the Reachability here;
}