我有一个VoIP套接字设置,即使在挂起状态下它也能正常工作,并且每隔10分钟ping一次服务器。
但是当WiFi连接中断时,即使处于暂停状态,我也不知道如何重新连接到该服务。设备重启也是如此。
有经验吗?
答案 0 :(得分:3)
答案 1 :(得分:0)
如果设备重新启动,则无法再次启动应用。用户必须启动您的应用。
当您的连接被删除时,由于某种类型的netwerk错误而您的应用程序在后台运行,iOS将暂停您的应用程序。因此,用户必须再次启动应用程序才能使其正常工作。
答案 2 :(得分:-1)
<强> setKeepAliveTimeout:处理程序:强>
为VoIP应用程序配置定期处理程序。
参数
超时
应唤醒应用程序以检查其VoIP连接的最大间隔(以秒为单位)。可接受的最小超时值为600秒。 keepAliveHandler 执行维护VoIP网络连接所需任务的块。将此参数设置为nil会释放当前处理程序块,并阻止UIKit安排下一次唤醒。
返回值
如果已安装处理程序,则为YES;如果不是,则为NO。
讨论
IP语音(VoIP)应用程序可以使用此方法安装处理程序,其作用是维护应用程序与VoIP服务器的网络连接。保证在指定的超时值之前调用此处理程序,但可以稍微不同的时间间隔调用此处理程序,以便更好地将处理程序的执行与其他系统任务对齐,从而节省功耗。您的处理程序最多需要10秒才能执行任何所需任务并退出。如果在时间到期之前没有退出,则应用程序将被暂停。
应用程序启动之间不会保留超时值和处理程序。因此,如果您的应用程序因任何原因而终止,则必须在下一个启动周期中重新安装该处理程序。
要成功调用此方法,应用程序必须在与Info.plist文件中的UIBackgroundModes键关联的数组中具有voip值。调用此方法将替换先前安装的处理程序和超时值(如果有)。
状况
适用于iOS 4.0及更高版本。
声明
UIApplication.h