iOS: запуск приложения в фоновом режиме с обновлением местоположения - PullRequest
0 голосов
/ 15 ноября 2018

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

1 Ответ

0 голосов
/ 15 ноября 2018

Официальный способ сделать это уже есть: просто используйте Always-Authorized . С его помощью вы можете проверить местоположение пользователя в особый период.

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