Расположение обновлений в фоновом режиме - PullRequest
1 голос
/ 05 октября 2011

В настоящее время в моем приложении это то, что я в данный момент делаю:

  • Когда пользователь запускает, ViewController-A (VC-A) запускает мониторинг местоположения GPS пользователя, используя startUpdatingLocation или startMonitoringForRegionв зависимости от модели телефона
  • VC-A также является делегатом для CLLocationManager
  • В настоящее время мониторинг выполняется на переднем плане - т.е. приложение должно быть запущено.

Чтобы получить обновления местоположения в фоновом режиме, это то, что я прочитал и понял до сих пор….

  • отделяет методы делегата CLLocationManager от newClass и реализует методы делегата в newClass
  • VC-A затем должен использовать экземпляр newClass для запуска мониторинга
  • , когда newClass получает обновление и когда мне нужно уведомить пользователя, - отправьте localNotification, если приложение находится в фоновом режиме или воспроизводитсяalertSound, если приложение находится на переднем плане - прекратите мониторинг

Нужно ли что-либо делать сpecial в файле AppDelegate.m?

С уважением.

1 Ответ

0 голосов
/ 05 октября 2011

Вам нужно обрабатывать обратные вызовы, когда ваше приложение переходит в фоновый режим.Исходя из вашего вопроса, я предполагаю, что вы проводите мониторинг региона для текущих устройств и просто прорабатываете информацию о местоположении для старых устройств?

Если это так, вам нужно также внедрить LocationManager в AppDelкак обработка обратных вызовов для -didEnterRegion и -didExitRegion, а также обратных вызовов для обратных вызовов -significantLocationChange.

Я только что реализовал настройку, очень похожую (но я отказался от старых устройств).Ключ создает locationManager внутри AppDel для обработки обратных вызовов.

Если ваше приложение находится на переднем плане, то LocationManager, который вы используете для создания регионов или отслеживания местоположения, работает нормально.Но как только вы попадаете в фон, вам нужно запустить -monitorForSignificantLocationChange, чтобы сохранить тесто и обработать любые обратные вызовы для него.

...