У меня есть намерение разработать приложение для 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
, когда фоновая задача завершена, но время фонового выполнения во второй раз не увеличивается и приложение завершается.