Android-лучший способ получить новое местоположение в onResume()

Приложение, над которым я работаю, использует GPS, а иногда в onResume, когда пользователь перезапускает приложение, используемое местоположение очень старое, а иногда и очень далекое. Он также не будет обновляться, даже если я установил время на 0 в своем диспетчере местоположений. Я пробовал добавлять новых слушателей, используя как грубые, так и точные, и переключаться с одного на другое, но я все еще не могу сделать его надежным. Может ли кто-нибудь указать мне, какой лучший и самый надежный способ принудительно обновить новое местоположение в методе onResume. Я больше не хочу полагаться на lastLocationKnown, поскольку теперь это моя проблема.

Редактировать: может быть, я должен был спросить, как мне получить местоположение, которое постоянно обновляется. Похоже, вы можете указать свое местоположение только как lastKnown, что вызывает у меня проблемы.


person James andresakis    schedule 29.01.2012    source источник


Ответы (1)


У меня была аналогичная проблема, и я понял, что onProviderEnabled() не сразу называется onResume(). В итоге я не отменил регистрацию своих слушателей в onPause(), а вместо этого отменил их регистрацию в onDestroy().

Вот ссылка на соответствующую документацию: http://developer.android.com/reference/android/location/LocationListener.html

Вот ссылка на мой исходный вопрос о переполнении стека:
Почему не Вызывается метод Android onProviderEnabled()?

Надеюсь это поможет. Мел

person Mel    schedule 30.01.2012
comment
Эй, спасибо за помощь :) Я продолжал пытаться сделать то же самое, установив для своих слушателей статус незарегистрированных в методе onPause, и рвал на себе волосы, потому что, когда я снова запускал приложение, я мог видеть в своем журнале cat, что они запускались в onResume, но никогда не вернет новое местоположение. Я начал думать, что собираюсь выяснить, как заставить метод onCreate срабатывать только для сброса всего. Я перемещу кое-что и отменю регистрацию всего в onDestroy и отпишусь, если заставлю это работать. - person James andresakis; 30.01.2012
comment
Мне пришлось сделать небольшую дополнительную очистку, которая включала в себя проверку того, что если местоположение старше, чем столько времени, что я просто использовал бы новую грубую позицию и переключался на другие по мере повышения их точности, но я реализовал свой метод отмены регистрации в ondestroy в моем основном классе, и теперь обновления, похоже, приходят так, как должны... спасибо за дополнительную помощь :) - person James andresakis; 31.01.2012