为什么后台任务在10分钟后结束

当应用程序处于后台时,我非常需要后台任务来运行。

这是一个VoIP应用程序所需要的。 所有步骤都为VoIP应用程序完成。

我正在使用以下脚本来运行后台任务

- (void)applicationDidEnterBackground:(UIApplication *)application { UIApplication *app = [UIApplication sharedApplication]; UIBackgroundTaskIdentifier bgTask; self.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:self.bgTask]; }]; } 

使用后,当应用程序进入后台,在10分钟内如果一个SIP呼叫来UILocalnotification出现。 但10分钟后,如果一个啜饮电话UILocalnotification没有出现。

请有人帮助我。

您是否将voip作为背景模式添加到应用Info.plist文件中的UIBackgroundModes项?

您的应用程序可能会因背景中的许多请求而崩溃。我希望您已经按照以下步骤操作:

实施VoIP应用有几个要求:

  • 将UIBackgroundModes键添加到您应用程序的Info.plist文件中。 将此密钥的值设置为包含voipstring的数组。

    • 为VoIP使用configuration一个应用套接字。

    • 在转到后台之前,请打电话给

    • setKeepAliveTimeout:处理程序:要安装处理程序的方法
    • 定期执行。 您的应用程序可以使用此处理程序来维护其服务连接。

    • configuration您的audio会话以处理转入和转出活动使用。

    为确保在iPhone上获得更好的用户体验,请使用核心电话框架来调整与基于蜂窝电话呼叫相关的行为; 请参阅核心电话框架参考。

  • 为了确保VoIP应用程序的良好性能,请使用“系统configuration”框架来检测networking更改,并尽可能让您的应用程序进入睡眠状态。