我想在每次我的应用程序进入前台时执行可达性检查,以警告用户远程数据可能已过时。我能否依靠3G或Wi-Fi在应用程序启动时被正确初始化的事实?或者我应该延迟可达性检查以避免“误报”。如果我应该延迟它,那么延迟时间会有多长?在应用程序启动/恢复时检测在线状态 - 网络可能启动延迟?
也许还有一个更推荐的方法?
我想在每次我的应用程序进入前台时执行可达性检查,以警告用户远程数据可能已过时。我能否依靠3G或Wi-Fi在应用程序启动时被正确初始化的事实?或者我应该延迟可达性检查以避免“误报”。如果我应该延迟它,那么延迟时间会有多长?在应用程序启动/恢复时检测在线状态 - 网络可能启动延迟?
也许还有一个更推荐的方法?
总是尝试先做好连接。只有在失败时,才能使用Reachability来确定您是否处于脱机状态,并确定何时应该自动重试。
尝试连接可能会以检查网络的方式重新激活网络。
它是,但是,完全适合听可达性的通知,网络已联机,并然后再次尝试(假设你不是已经开始尝试)。
要明确:
“我要执行可达每一个我的应用程序涉及到前台时检查......”
把你的可达性检查viewDidAppear:
-(void)viewDidAppear:(BOOL)animated {
// reachability check
}
可达上iOS开发库: http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html
好主意,但我不想把它在每一个viewDidAppear可能的,但要在应用程序的简历触发/启动。 – 2013-03-18 18:23:24
你可以看看使用UIApplicationDelegate方法applicationWillEnterForeground,applicationWillResignActive,applicationDidEnterBackground和applicationDidBecomeActive。请参阅:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html – rog 2013-03-18 18:34:37
我知道,我知道...我的问题不是在哪里检查它,但我怎么可以肯定网络已经重新启动了。 – 2013-03-18 18:40:02
重新激活网络是否真的取决于应用程序网络调用?我认为这将独立完成,并通过唤醒手机(解锁)触发。 – 2013-03-18 18:27:40
如果手机没有看到任何其他原因来唤醒数据网络,那么是的,绝对是。您应该观看WWDC 2012会话706. – 2013-03-18 18:38:51
谢谢...一个很好的精确答案... – 2013-03-18 18:41:29