Фоновая задача в задаче 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 ответ

По моему пониманию beginBackgroundTaskWithExpirationHandler Метод используется для выполнения задачи конечной длины в фоновом режиме. Смотрите здесь. И нет никакого способа продлить тот период в 10 минут, который я обнаружил.

Поскольку ваше приложение классифицируется как приложение в фоновом режиме, я не думаю, что вам понадобится beginBackgroundTaskWithExpirationHandler.

Прочитайте раздел "Реализация приложения VoIP" в приведенной выше ссылке. Он поддерживает использование setKeepAliveTimeout:handler: метод.

Другие вопросы по тегам