0

我在 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

我对此很有耐心。

请任何人帮助我。请。

4

1 回答 1

3

据我了解,该beginBackgroundTaskWithExpirationHandler方法用于在后台执行有限长度任务。见这里。我发现没有办法延长 10 分钟的时间。

由于您的应用程序被归类为需要后台模式的应用程序,我认为您不需要 beginBackgroundTaskWithExpirationHandler。

阅读上面链接中的“实现一个VoIP应用程序”部分。它提倡使用setKeepAliveTimeout:handler:方法。

于 2013-10-03T09:58:25.533 回答