2

我正在开发一个 VoIP 应用程序。

当我的应用程序进入后台时,我的 VoIP 套接字运行良好,并且该应用程序可以接收来自其他用户的呼叫,但是当我手动终止我的应用程序时(从 iPhone 屏幕底部的多任务坞站),我的应用程序没有收到任何电话。

在 Apple 官方参考资料中,它表示 VoIP 应用程序将在应用程序退出或系统重新启动时在后台重新启动。我知道我必须在该didFinishLaunchingWithOptions方法中重新连接我的 VoIP 服务器,并且我已经这样做了,但它似乎不起作用。我怀疑该didFinishLaunchingWithOptions方法是否已执行,因为我没有看到任何日志表明这一点(我NSLog(@"did launch")在第一行添加了 method didFinishLaunchingWithOptions,但我没有看到日志文本)。

谁能帮我?谢谢。

4

1 回答 1

1

一旦应用程序终止,就不可能得到任何事件,要重新启动它,您必须再次单击应用程序图标,或者在推送通知的情况下,应用程序将通过选择通知消息重新启动。

你能分享你提到的苹果官方参考文件的链接吗?

如果您的应用程序在这种情况下处于后台,您可以获得事件。

这里的文档评论就像,

“因为 VoIP 应用程序需要保持运行才能接听来电,如果应用程序以非零退出代码退出,系统会自动重新启动应用程序。(当存在内存压力并且您的应用程序因此而终止时,可能会发生这种类型的退出.) 但是,终止应用程序也会释放其所有套接字,包括用于维持 VoIP 服务连接的套接字。因此,当应用程序启动时,它总是需要从头开始创建其套接字。

当您手动终止应用程序时,退出代码将为零,因此应用程序不会收到任何事件,如果操作系统将终止应用程序并出现其他问题,应用程序将由系统自动重新启动。

于 2013-10-25T06:51:32.913 回答