Я создаю навигационное приложение,
Я использую как Standard location service
, так и Significant-change location service
.
также я установил
significantChangesLocationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
significantChangesLocationManager.activityType = CLActivityTypeOtherNavigation;
significantChangesLocationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.activityType = CLActivityTypeOtherNavigation;
//Not allowing automatic pausing because of this: http://stackoverflow.com/questions/17484352/iphone-gps-in-background-never-resumes-after-pause. Testing confirms this behavior - app goes to sleep and never wakes up.
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
Каждый раз, когда вызывается locationManager:didUpdateLocations:
, я запускаю новую фоновую задачу для сохранения местоположения, анализа образца и т. Д.
У меня есть некоторые проблемы после того, как приложение было убито системой / пользователем
Служба определения местоположения с существенным изменением разбудит мое приложение через 500 метров (или более).
Итак, приложение переходит в фоновый режим, и с полученным местоположением я делаю то же самое, что написал выше.
Мои вопросы:
Когда приложение просыпается из приостановленного на фон, как долго я могу работать?
Я пытался получить UIApplication backgroundTimeRemaining
при входе в фоновый режим, но я всегда получаю двойное максимальное значение (даже если я использую фоновую задачу), как я могу это исправить?
Можно ли получить чаще места после перехода из приостановленного на фон?