Действительно ли requestForLocation обновляет блокирующий вызов в Android? - PullRequest
0 голосов
/ 16 августа 2011

Я хочу обновлять местоположение каждые 5 минут до жизненного цикла приложения.Я знаю, как обновить местоположение.То, что я хочу знать, является ли requestForLocation блокирующим вызовом или нет.

Я могу сделать это в классе Service, но Service запускается только в главном потоке, а также Service может быть остановлен системой в любое время.Я не хочу, чтобы это произошло.Обновление местоположения должно работать, пока приложение не находится в памяти.Если само приложение уничтожается, то, очевидно, Служба также уничтожается.

Каким должен быть подход для реализации этого?

1 Ответ

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

Я хочу знать, является ли requestForLocation блокирующим вызовом или нет.

В Android нет метода с именем requestForLocation() или requestForLocationUpdates().Если вы имеете в виду requestLocationUpdates(), это не блокирующий вызов.

Я не хочу, чтобы это произошло.

Пользователи и ОС имеют право прекратить работу вашего сервиса в любое время.В данном случае это хорошо, потому что предлагаемый вами план бесполезно расходует ОЗУ.

Каким должен быть подход для реализации этого?

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

Также, пожалуйста, разрешитепользователи могут настроить период опроса, включая опцию «не опрашивать».

...