我正在为 iPhone 和 iPad 系列创建一个 voip 应用程序,我在其中完成了以下操作:
- 在 plist 文件中添加了 UIBackgroundModes 键,其值为“audio”和“voip”。
- 使用标签 NSStreamNetworkServiceTypeVoIP 创建 NSInputStream 和 NSOutputStream 并将它们调度到另一个线程(非主线程)的运行循环中。
- 在 applicationDidEnterBackground 中创建了后台任务。
- 添加了 setKeepAliveTimeout 处理程序(超时值 600 秒)。
当调用 setKeepAliveTimeout 处理程序中的代码时,应用程序重新启动。
如果我不放置 setKeepAliveTimeout 处理程序,但尝试在暂停后向应用程序发送任何信号(后台完成 10 分钟),应用程序将重新启动。
我几乎尝试了我想到的所有方法,需要指向解决方案的指针,提前致谢,
最佳答案
setKeepAliveTimeout 处理程序有责任关心连接。因此,您应该使用比连接超时时间更短的事件间隔。
关于iphone - ios voip 应用程序在后台仅运行 10 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14974682/