当连接状态改变时,我该如何收到通知?

4
我目前正在开发一款应用程序,必须检查用户是否在后台输入了家庭wifi网络(类似于地理围栏,但仅在用户进入或退出家庭wifi时运行代码)。
问题是,我找不到一个干净的解决方案来做到这一点。我是否遗漏了某个通知?
在Android中,我只是编写了一个广播接收器,当网络状态更改时,AndroidOS进行广播。
在iOS中有类似的东西吗?我在苹果文档中没有找到任何相关信息。
谢谢。
编辑: iOS 7怎么样?现在有一个后台应用程序刷新服务。 它可以实现吗,还是仅限于下载?
本地通知呢?

请尝试此链接:https://dev59.com/VWMm5IYBdhLWcg3wKsvO - Siddh
1个回答

5
您可以使用iOS类检测网络状态变化,可以查看Reachability。您可以注册通知以获取以下事件:无网络、wifi连接可用、3g连接可用。
有一个教程可以在这里找到。

没错,这也是我发现的问题,但问题在于我必须在后台检查状态更改。如果用户连接到他的家庭WiFi,我想在不再将应用程序带到前台的情况下运行代码。这里有什么想法吗?长时间的后台任务只有10分钟。那不够,是否有一个无限后台任务等待您发布的Reachability类的通知? - flo
好的,所以问题并不是如何检测网络状态的变化。不幸的是,除非您的应用程序属于有限的一组情况之一,否则您没有任何机会这样做。请在此处查看:https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3,在“实现长时间运行的后台任务”下面。不知道您是否可以将其中一个情况“弯曲”到您的要求。 - sergio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接