android LocationManager.requestLocationUpdates с minTime> 0 не работает должным образом - PullRequest
3 голосов
/ 22 ноября 2010

Я установил

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0f, this);<br>

Это странное поведение, locationChanged вызывается каждую секунду, а не любое время, близкое к 1 минуте.Во-вторых, locationChanged вызывается каждую секунду в течение примерно 10 секунд, затем полностью останавливается, значок gps satalites исчезает, а затем снова возобновляет работу только после того, как экран возвращается с тайм-аута дисплея.
что не так?

Сейчас я нахожусьна андроид 1.5.

1 Ответ

9 голосов
/ 22 ноября 2010

MinTime (60000) - это просто подсказка, и нет никакой гарантии, что ваш локалистер сработает с точным интервалом в 1 минуту.В сочетании с minDistance = 0 вы, вероятно, получите гораздо больше обновлений.

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

Вы также получите разные местоположения через слушателя местоположения, с другой точностью, все в пределах этогоминутный интервал

Ваш слушатель местоположения может выбрать лучшую точность и запомнить, когда было обработано последнее местоположение, поддерживая состояние (lastLocationProcessedAt).

...