2

我想在每次我的应用程序进入前台时执行可达性检查,以警告用户远程数据可能已过时。我可以相信 3G 或 Wi-Fi 在应用程序启动时已正确初始化的事实吗?或者我应该延迟可达性检查以避免“误报”。如果我应该延迟它,那么足够的延迟间隔是多少?

也许还有更推荐的方法?

4

2 回答 2

3

始终尝试先进行连接。只有当它失败时,您才应该使用 Reachability 来确定您是否处于脱机状态,并确定何时应该自动重试。

尝试您的连接可能会重新激活网络,而检查它不会。

但是,完全适合收听 Reachability 的网络已上线的通知,然后再试一次(假设您尚未尝试)。

要清楚:

  • 即使 Reachability 说它不可用,访问网络也可能会唤醒它,所以试试吧。
  • 在尝试并失败后,Reachability 应该会告诉您网络是否可用。(不要完全相信它,但一定要用它来定制你的错误消息。)
  • Reachability 会检测到网络因其他原因而唤醒,因此当您收到 Reachability 的通知时再试一次。
  • 不要忽视移动网络的复杂程度,并尽可能少做假设。
于 2013-03-18T18:10:14.840 回答
0

“我想在每次我的应用程序进入前台时执行可达性检查......”

将您的可达性检查 viewDidAppear:

-(void)viewDidAppear:(BOOL)animated {
    // reachability check
}

iOS 开发者库的可达性:http: //developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

于 2013-03-18T17:57:15.063 回答