Запуск приложения в фоновом режиме, как Google Локатор - PullRequest
2 голосов
/ 14 августа 2011

В настоящее время я работаю над приложением, которое отслеживает местоположение пользователя. Я хочу, чтобы это приложение запускалось, даже если его нет в списке задач (двойное нажатие на кнопку домой не показывает его). Как широта Google, приложение не работает в фоновом режиме. Я думаю, что этот документ говорит о запуске приложения, когда пользователь нажимает на кнопку домой: http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

а что если пользователь закроет это приложение, дважды щелкнув по кнопке home? Я знаю, что такие приложения, как Google широты все еще работают в фоновом режиме. так как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Приложение может снова запускаться в фоновом режиме в случае, если оно было зарегистрировано для значительного изменения местоположения при запуске в последний раз. Если Google latitude запустит приложение обратно, то они используют этот поток:

  1. Запуск приложения
  2. Проверьте, может ли устройство предоставить уведомление о значительном изменении местоположения (устройства с сотовыми данными могут обрабатывать такого рода уведомления): significantLocationChangeMonitoringAvailable
  3. Зарегистрируйтесь для получения уведомления: startMonitoringSignificantLocationChanges
  4. Выйдите из приложения, и как только ваше устройство выйдет из одной вышки сотовой связи в другую, система отправит уведомление, и ваше приложение будет активировано.

Существует проблема, нет нормального способа отменить регистрацию в этом уведомлении. Я думаю, только предоставляя пользователю возможность прекратить мониторинг. Я заметил это стрелкой в ​​правом верхнем углу строки состояния, что означает, что кто-то использует службу определения местоположения.

0 голосов
/ 15 августа 2011

Я могу заверить вас, что Google Локатор обновляет местоположение пользователя только тогда, когда он запускается (и отображается) или когда он работает как фоновый процесс (когда доступна многозадачность).

Локатор Google используетlocation фоновая служба, которая использует вышки сотовой связи для определения местоположения устройства, когда приложение работает в фоновом режиме (как описано в документации, которую вы связали).Приложение «Локатор» не может обновить местоположение, если оно не запущено.

...