Как мне получать фоновое обновление местоположения каждые n минут в моем приложении iOS?

Я ищу способ получать фоновое обновление местоположения каждые n минут в моем приложении iOS. Я использую iOS 4.3, и решение должно работать на iPhone без джейлбрейка.

Я пробовал / рассматривал следующие варианты:

  • CLLocationManager startUpdatingLocation / startMonitoringSignificantLocationChanges : Это работает в фоновом режиме, как и ожидалось, в зависимости от настроенного properties, но кажется невозможным заставить его обновлять местоположение каждые n минут
  • NSTimer : Работает, когда приложение работает на переднем плане, но, похоже, не предназначено для фоновых задач
  • Local уведомления: локальные уведомления могут быть запланированы каждые n минут, но невозможно выполнить некоторый код для получения текущего местоположения (без необходимости запускать приложение через уведомление). Этот подход также не кажется чистым, поскольку это не то, для чего следует использовать уведомления.
  • UIApplication: beginBackgroundTaskWithExpirationHandler : Насколько я понимаю, это следует использовать для завершения некоторой работы в фоновом режиме. (также ограничено по времени), когда приложение перемещается в фоновый режим, а не реализует «длительные» фоновые процессы.

Как я могу реализовать эти регулярные фоновые обновления местоположения?

201
задан Ashwini Shahapurkar 18 February 2014 в 00:55
поделиться