Перезапустить locationUpdates после паузLocationUpdatesAutomatically [CLLocationManager]

Мне интересно, перезапускает ли система iOS locationUpdates CLLocationManager автоматически после автоматической паузы с помощью свойства pausesLocationUpdatesAutomatically или мне приходится обрабатывать этот случай самостоятельно.

Если да, то по каким правилам, а если нет, то как узнать, что я снова начинаю двигаться и должен перезапустить locationUpdates?


person kokluch    schedule 24.01.2014    source источник


Ответы (1)


Если вы установите

yourLocationManager.pausesLocationUpdatesAutomatically = YES;

вы также должны установить значение

yourLocationManager.activityType

«Диспетчер местоположения использует информацию в этом свойстве в качестве подсказки, чтобы определить, когда обновления местоположения могут быть автоматически приостановлены. Приостановка обновлений дает системе возможность экономить энергию в ситуациях, когда местоположение пользователя вряд ли изменится. Например, если тип действия — CLActivityTypeAutomotiveNavigation, и в последнее время не происходило никаких изменений местоположения, радиостанции могут быть отключены до тех пор, пока снова не будет обнаружено движение».

ОБНОВЛЕНИЕ: изменена документация Apple. После паузы вы обязаны снова перезапустить службы определения местоположения, когда определите, что они необходимы. Core Location вызывает метод locationManagerDidPauseLocationUpdates(_:) делегата вашего менеджера местоположения. чтобы вы знали, что произошла пауза. В этом методе вы можете настроить локальное уведомление, триггер которого имеет тип UNLocationNotificationTrigger и настроен на уведомление, когда пользователь выходит из текущего региона. Сообщение для локального уведомления должно предлагать пользователю снова запустите приложение, чтобы оно могло возобновить обновления».

person tanzolone    schedule 24.01.2014
comment
Ну это не совсем мой вопрос. Я уже знаю об этом, но все равно спасибо. Однако это: и они автоматически перезапускаются, когда тип активности больше не обнаруживается, это то, что я хочу знать. Не могли бы вы рассказать мне больше об этом, пожалуйста? Где вы нашли информацию? спасибо - person kokluch; 24.01.2014
comment
Это определенно так, если приложение находится на переднем плане. Если он находится в фоновом режиме, он, вероятно, никогда не будет возобновлен - как обсуждается здесь: заголовок stackoverflow.com/questions/17484352/ - person tanzolone; 24.01.2014
comment
Хорошо. Спасибо за ссылку. Кажется, что есть озеро документации об этом. - person kokluch; 24.01.2014
comment
я нигде не вижу, чтобы они автоматически перезапускались, когда тип активности больше не обнаруживается. в документе я могу прочитать: после паузы вы несете ответственность за повторный перезапуск служб определения местоположения, когда вы определяете, что они необходимы - person zeus; 17.07.2017