я скопировал ответ Gualtier от here Personnaly я нашел, что это очень полезно с четким объяснением! Надеюсь, что вам помогут
Обновления местоположения начнутся в любом случае. Какие изменения происходят, когда вызов startUpdatingLocation выполняется, когда приложение находится на переднем плане (и задан «UIBackgroundMode»), система содержит утверждение фоновой задачи для вашего приложения; что означает, что ваше приложение не будет приостановлено до тех пор, пока будут выполняться обновления местоположения.
В случае вызова startUpdatingLocation в то время как ваше приложение в фоне, CoreLocation все еще отвечает, начиная с обновлением местоположения для вашего приложения, но система не будет больше держать утверждение для вас, и вашего приложения будет приостановлено, как только разрешено время в фоновом режиме. Документация технически правильная - вы можете запускать обновления местоположения из любого состояния - оставаться активным с приостановкой - это еще одна история.
Этот раз (это) сейчас 10 секунд, поэтому вы считаете, что обновление останавливается через 10 секунд. Но на самом деле ваше приложение теперь приостановлено и больше не может получать обновления. Существует способ, чтобы продлить этот срок до (в настоящее время) до 3-х минут, используя beginBackgroundTaskWithExpirationHandler: (Подробнее об этом здесь:. https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW1
ли это длительное время достаточно будет зависеть от вашего приложения
Если ваш цель в попытке подождать до тех пор, пока не начнется обновление местоположения, это энергосбережение, есть и другие способы. - если он подходит для вашего случая использования, услуга значительного изменения местоположения довольно эффективна и лучше подходит для использования в сочетании с стандартная служба определения местоположения - вы можете начать обновление местоположения, когда ваше приложение находится на переднем плане, и отложите обновления местоположения, пока ваше приложение находится в фоновом режиме. Поскольку ваше приложение отслеживает поездки w у которого было бы начало и конец, с обновлением местоположения, выполняемым во время путешествия, в то время как отсрочка обновлений могла бы быть подходящей для вашего случая. Когда обновления отложены, система разбудит ваше приложение, когда оно решит, что это эффективно.Вы можете прочитать больше о том, что здесь: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html#//apple_ref/doc/uid/TP40009497-CH2-SW14
Кроме того, я предлагаю вам посмотреть на WWDC 2015 презентацию «Что новое в Core Location» , чтобы выяснить, что приходит в прошивке 9. Там есть новый способ, чтобы получить текущее местоположение, которое может вас заинтересовать, и есть дополнительный шаг для получения обновлений фонового местоположения. Видео здесь: https://developer.apple.com/videos/wwdc/2015/?id=714
Как долго вы видите работу с фоном на iOS 8.x? Фоновая настройка не должна работать более 10 секунд после перехода приложения на задний план, если вы не примете специальные меры для его расширения. http://developer.radiusnetworks.com/2014/11/13/extending-background-ranging-on-ios.html – davidgyoung
Я смог заставить его работать часами –