iPhone - запустить / остановить CLLocationManager - PullRequest
0 голосов
/ 24 мая 2011

Это действительно вытекает из моего "мозгового штурма" прошлой ночью здесь: Мозговой штурм iPhone - CLLocation в фоне - Опрос каждые 15 минут

Когда мое приложение активно, я могу остановить CLLocationManager послеЯ правильно понялЗатем после executeSelector afterDelay я могу запустить его снова, взять показание и остановить его.

Если приложение работает только в фоновом режиме, когда у меня работает таймер, оно никогда не перезапускает CLLocationManager.Я зарегистрировался для фоновых обновлений местоположения, и если я не остановил CLLocationManager, то это нормально, но для батареи я надеялся, что смогу продолжать запускать / останавливать его.

Пожалуйста, сообщите.

Спасибо Джеймс

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Сохранить текущее время, когда приложение переходит в фоновый режим.

Когда оно снова становится активным:

  • Если прошло более 15 минут после того, как приложение перешло в фоновый режим - запустите CLLocationServices
  • Если прошло <15 минут, запустите таймер с оставшимся временем до запуска CLLocationServices. </li>
1 голос
/ 24 мая 2011

Прочитайте документацию Apple о расположении в фоновом режиме . Timmers нельзя использовать в фоновом режиме.

Если вы сохраняете CLLocationManager с правильными настройками, он будет вызывать обновление местоположения только при значительном изменении, когда пользователь перемещается между вышками сотовой связи / точками Wi-Fi.

...