Имя фоновой задачи несколько неуместно.
В частности, beginBackgroundTask(expirationHandler:)
фактически не запускает какую-либо фоновую задачу, а скорее сообщает системе, что вы начали какую-то текущую работу, которую хотите продолжить, даже если ваше приложение находится в фоновом режиме.
Вам все еще нужно написать код для создания и управления этой работой.
Поэтому лучше всего рассматривать API фоновых задач как выражение «не приостанавливать меня».
iOS 13 накладывает строгие ограничения на общее количество количество времени, которое вы можете предотвратить приостановку с помощью фоновых задач.
iOS 13 уменьшило значение от переднего плана до 30 секунд.
a. 3 минуты, когда ваше приложение переместилось с переднего плана на фон
b. 30 секунд, когда ваше приложение было возобновлено в фоновом режиме
Вы можете получить приблизительную оценку количества времени, доступного вам, просмотрев свойство UIApplication() backgroundTimeRemaining
.
Дополнительная информация здесь и здесь .
Вы можете использовать другой API для достижения ваших целей.