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

时间:2013-10-07 11:43:55

标签: iphone ios objective-c uilocalnotification

当应用程序处于后台时,我总是急需一个后台任务来运行。

voip应用程序需要它。所有步骤都是为voip app完成的。

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

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

使用后,当应用程序进入后台时,如果出现UILocalnotification,则会在10分钟内发出啜饮呼叫。但是10分钟后,如果啜饮呼叫,UILocalnotification没有出现。

请有人帮助我。

2 个答案:

答案 0 :(得分:1)

您是否已将voip作为后台模式添加到应用UIBackgroundModes文件中的Info.plist键?

答案 1 :(得分:0)

由于后台有很多请求,您的应用可能会崩溃。我希望您已经按照以下步骤操作:

实施VoIP应用有几个要求:

  • 将UIBackgroundModes键添加到应用的Info.plist文件中。设置 此键的值为包含voip字符串的数组。

    • 配置其中一个应用程序的套接字以供VoIP使用。

    • 在移至后台之前,请致电

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

    • 配置音频会话以处理与活动之间的转换 使用

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

  • 要确保VoIP应用的良好性能,请使用系统 配置框架,用于检测网络更改并允许您的应用 尽可能多地睡觉。