У меня есть намерение разработать приложение для iOS, которое работает с событиями входа/выхода из геозоны.
Мне нужно запустить мое приложение, пока приложение работает в фоновом режиме или при вызове ОС в течение примерно 5 минут. Например, при получении уведомления для мониторинга событий.
Я включил фоновое выполнение с обновлением местоположения и при необходимости запускаю фоновую задачу, чтобы продолжить выполнение в фоновом режиме.
Проблема в том, что приложение работает только около 180 секунд, после чего фоновая задача автоматически завершается. Я попытался повторно запустить фоновую задачу по завершении, но это не сработало, и выполнение приложения остановилось через 3 минуты.
func keepAlive() {
backgroundTask = UIApplication.shared.beginBackgroundTask { [weak self] in
UIApplication.shared.endBackgroundTask(self!.backgroundTask)
self?.backgroundTask = UIBackgroundTaskInvalid
self?.keepAlive()
}
}
Можно ли запускать приложение более 180 секунд? Я тестирую iOS 11 и 12.
Изменить: я попытался вызвать функцию keepAlive
после завершения фоновой задачи, но во второй раз время фонового выполнения не увеличилось, и приложение было закрыто.