我在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
我很耐心。
请任何人帮助我。请。
答案 0 :(得分:3)
根据我的理解,beginBackgroundTaskWithExpirationHandler
方法用于在后台执行有限长度任务。见Here。并且没有办法延长我发现的10分钟的时间。
由于您的应用分类为后台模式所需的应用,我认为您不会需要 beginBackgroundTaskWithExpirationHandler。
阅读上述链接中的“实施VoIP应用程序”部分。它主张使用setKeepAliveTimeout:handler:
方法。