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