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