Есть ли способ продлить iOS фоновую среду выполнения чуть дольше, чем 30 секунд, или вызвать фоновую функцию через минуту или около того, чтобы запустить ее один раз? - PullRequest
1 голос
/ 01 апреля 2020

У меня есть приложение, которое запускается в фоновом режиме, и так как iOS 13 получает около 30 секунд фонового времени выполнения, используя beginBackgroundTask (expirationHandler) . Я пытаюсь получить данные из внешнего сервиса, для расчета которого требуется около 40 секунд, поэтому мне нужно расширить фоновую выборку и установить DispatchQueue на 40-60 секунд позже или напрямую вызвать функцию в фоновом режиме 60 секунд позже.

Я посмотрел вверх Фоновая выборка , но я не думаю, что это адекватно, поскольку он извлекал данные вечно (и на больших временных интервалах), в то время как он мне нужен только через 1 минуту после завершения фоновых вычислений .

Я также посмотрел похожие посты, в которых устаревшее изречение iOS может справиться с заданием в течение 3 или 10 минут, как это было до iOS 13 и iOS 7

. Для контекста, приложение получает пакет BLE в фоновом режиме, выполняя фоновую задачу приложения в течение приблизительно 30 секунд, и отправляет полученные данные на сервер, который выполняет определенные вычисления, обновляя метод GET http, который дает приложению его окончательные результаты

Разъяснение: у меня нет доступа или я могу изменить сервер.

Если нет способа, есть ли у схожих способов сделать то же самое?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...