目标c中的背景任务

时间:2013-10-03 09:47:31

标签: iphone ios objective-c voip

我在objective-c

中有一个VOIP应用程序

当应用程序在前台时,SIP调用正常工作。

我的问题是当我的应用程序处于后台时SIP调用在转到后台后10分钟后无效。

我已在 applicationDidEnterBackground

中启动了后台任务
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{

    // Clean up any unfinished task business by marking where you

    // stopped or ending the task outright.

    [application endBackgroundTask:bgTask];

    bgTask = UIBackgroundTaskInvalid;

}];



// Start the long-running task and return immediately.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{



    // Do the work associated with the task, preferably in chunks.



    [application endBackgroundTask:bgTask];

    bgTask = UIBackgroundTaskInvalid;

});

在plist文件中 UIBackgroundModes 设置为 voip

我很耐心。

请任何人帮助我。请。

1 个答案:

答案 0 :(得分:3)

根据我的理解,beginBackgroundTaskWithExpirationHandler方法用于在后台执行有限长度任务。见Here。并且没有办法延长我发现的10分钟的时间。

由于您的应用分类为后台模式所需的应用,我认为您不会需要 beginBackgroundTaskWithExpirationHandler。

阅读上述链接中的“实施VoIP应用程序”部分。它主张使用setKeepAliveTimeout:handler:方法。