iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?
Posted
技术标签:
【中文标题】iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?【英文标题】:iOS voip app sleeps & Reachability has changed, can I get notification? 【发布时间】:2011-08-16 15:02:52 【问题描述】:我正在为 ios 构建一个 voip 应用程序,我正在处理后台工作。
到目前为止,我让 iOS 在应用程序睡眠时监听 voip 套接字并在传入数据时唤醒它。
我的问题是: 当可达性发生变化时(Wifi -> 3G、Wifi -> 其他 Wifi 等) 并且应用程序已暂停,我可以收到一些通知以重新连接我的 voip 套接字吗?
谢谢。
【问题讨论】:
【参考方案1】:答案是“是”和“否”:
注册 Reachability 网络更改通知。 如果应用程序在其 voip 套接字(请参阅链接)连接时进入后台暂停,则网络更改应用程序将在后台唤醒 10 秒。 如果应用程序在其 voip 套接字未连接时进入后台挂起,则网络更改应用程序将不会唤醒。 网络丢失和无连接进入后台场景的解决方案可能是修复您可以在 UIApplication 中安排的 Keep-Alive 块中的连接。 注意:在上述 10 秒内,您可以请求后台任务以完成重新连接工作。链接:
VoIP socket in iOS VoIP socket wakeups - iOS 5 Watchdog【讨论】:
【参考方案2】:如果您有后台套接字,您可以订阅可达性通知,它们会在后台触发,以便您可以对可达性更改执行操作。如果您在点击后台时没有取消订阅通知,如果订阅通知的对象是您的应用程序委托,您仍然会收到通知。
【讨论】:
以上是关于iOS voip 应用程序休眠和可达性已更改,我可以收到通知吗?的主要内容,如果未能解决你的问题,请参考以下文章
即使应用程序已注册为 VOIP,iOS9 套接字连接也会在应用程序暂停时终止