Я ищу способ получить обновление фонового местоположения каждые n минут в приложении iOS. Я использую iOS 4.3, и решение должно работать для не-jailbroken iPhone'ов.
Я попробовал/рассмотрел следующие варианты:
-
CLLocationManager startUpdatingLocation/startMonitoringSignificantLocationChanges
: это работает в фоновом режиме, как и ожидалось, на основе настроенных свойств, но кажется невозможным заставить его обновлять местоположение каждые n минут. -
NSTimer
: работает, когда приложение работает на переднем плане, но, похоже, не предназначено для фоновых задач. - Локальные уведомления: локальные уведомления можно планировать каждые n минут, но невозможно выполнить какой-либо код для получения текущего местоположения (без необходимости запуска приложения через уведомление). Этот подход также, похоже, не является чистым подходом, поскольку это не то, для чего следует использовать уведомления.
-
UIApplication:beginBackgroundTaskWithExpirationHandler
: Насколько я понимаю, это должно использоваться для завершения некоторой работы в фоновом режиме (также ограниченной во времени), когда приложение перемещается на задний план, а не реализует "длительные" фоновые процессы.
Как я могу реализовать эти регулярные обновления фонового местоположения?