Традиционно (и прагматично) вы настроили своего менеджера местоположений на -startUpdatingLocation, пока ваше приложение будет использовать. Это сильно разрядит вашу батарею, если вы оставите ее полностью работоспособной. Обычно вы вызываете это, получаете необходимую информацию или обновляете информацию, вызываете -stopUpdatingLocation. Это ставит все на отдых, больше не разряжается аккумулятор.
При переходе на задний план у вас очень ограниченные возможности для точности, если вы все еще хотите сохранить время работы от батареи. Основной - это -startMonitoringForSignificantChanges. Это обновление местоположения зависит в первую очередь от рук стороны ячейки и триангуляции. Поэтому, если ваш пользователь не перемещается на большие расстояния или находится в зоне с ограниченным доступом к ячейке, не ожидайте, что этот фоновый режим будет работать очень хорошо.
Вы другой вариант фона -startMonitoringRegion. Это позволяет создавать окружную область вокруг мест и получать уведомления, когда вы -enterRegion или -exitRegion. Все они должны быть настроены перед входом в фоновый режим. У них есть дополнительное преимущество в улучшении местоположения. Изменение WiFi, переключение каналов сотовой связи и даже другие приложения с использованием обновлений местоположения. ОС захватывает все обновления местоположений и сворачивает их вниз и делает их доступными для любых регионов, зарегистрированных в ОС.
У вас по-прежнему есть возможность запускать обновления местоположения в фоновом режиме, но ваши пользователи не будут благодарны за то, что у них нет батареи после 30 минут использования.
Удачи. Существует множество примеров того, как достичь всего этого на SO и в Интернете. Трюк заключается в поиске правильной комбинации, которая будет работать для вас. Удачи.
спасибо, я решаю проблему – icefox