我正在开发一个VoIP应用程序。
当我的应用程序进入后台时,我的VoIP套接字工作正常,应用程序可以接收来自其他用户的呼叫,但是当我手动终止我的应用程序时(从iPhone屏幕底部的多任务停靠站),我的应用程序没有接到任何电话。
在官方的Apple参考文献中,它表示当应用程序退出或系统重启时,VoIP应用程序将在后台重新启动。我知道我必须用didFinishLaunchingWithOptions
方法重新连接我的VoIP服务器,我已经这样做了,但似乎没有用。我怀疑是否已执行didFinishLaunchingWithOptions
方法,因为我没有看到任何日志表明(我已在方法NSLog(@"did launch")
的第一行添加didFinishLaunchingWithOptions
,但我没有见日志文本。)
任何人都可以帮助我吗?感谢。
答案 0 :(得分:1)
一旦应用程序终止,就无法获得任何事件,要重新启动它,您必须再次单击应用程序图标,或者如果推送通知应用程序将通过选择通知消息重新启动。
您能分享您提到的苹果官方参考文件的链接吗?
如果您的应用程序在后台,那么您可以获得活动。
这里的文档评论就像,
“因为VoIP应用程序需要保持运行才能接收来电,系统会自动重新启动应用程序,如果它以非零退出代码退出。(这种类型的退出可能发生在有内存压力和您的应用程序因此而终止。)但是,终止应用程序还会释放其所有套接字,包括用于维护VoIP服务连接的套接字。因此,当应用程序启动时,它始终需要创建其套接字从零开始。“
当您手动终止应用程序退出代码将为零,因此应用程序将不会获取任何事件,如果操作系统将终止应用程序与其他问题应用程序将自动重新启动系统。