Android: getLastKnownLocation устарел - как заставить обновление местоположения? - PullRequest
11 голосов
/ 13 января 2010

Я использую

myLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

для получения текущего местоположения при запуске моего приложения.

Как указано в документации Android, это местоположение может быть "устаревшим", поскольку метод возвращает местоположение, когда GPS использовался в последний раз.

Как я могу активно запрашивать текущее местоположение с GPS? Я подумал об использовании LocationListener, однако это может быть немного излишним, поскольку мне нужно только один раз местоположение (в начале моего приложения).

Есть идеи?

1 Ответ

10 голосов
/ 13 января 2010

Ваша первоначальная интуиция верна - вам нужно использовать LocationListener для запроса обновлений. Учитывая, что вам требуется только одна позиция, вы можете отменить регистрацию LocationListener после возврата первого значения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...