Как долго Служба определения местоположения может сохранять мое приложение в фоновом режиме? - PullRequest
0 голосов
/ 05 ноября 2018

Я создаю навигационное приложение, Я использую как 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 метров (или более). Итак, приложение переходит в фоновый режим, и с полученным местоположением я делаю то же самое, что написал выше.

Мои вопросы:

  1. Когда приложение просыпается из приостановленного на фон, как долго я могу работать?

  2. Я пытался получить UIApplication backgroundTimeRemaining при входе в фоновый режим, но я всегда получаю двойное максимальное значение (даже если я использую фоновую задачу), как я могу это исправить?

  3. Можно ли получить чаще места после перехода из приостановленного на фон?

...