Android locationmanager.requestlocationUpdates с Mintime> 0 не работает должным образом
-
27-09-2019 - |
Вопрос
Я установил
locationmanager.requestlocationUpdates (locationmanager.gps_provider, 60000, 0f, это);
Он имеет нечетное поведение, locationChanged вызывается каждую секунду вместо того, чтобы любое время близко к 1 минуту. Во-вторых, locationChanged вызывается каждую секунду в течение 10 секунд, затем полностью останавливается, значок GPS Satalites исчезает, затем снова возобновляется только тогда, когда экран возвращается из тайм-аута дисплея.
что случилось?
В настоящее время я на Android 1.5.
Решение
MINTIME (60000) - это просто подсказка, и нет никакой гарантии, что ваше местопреобразование ударит точным 1 минутом интервала. В сочетании с Mindistance = 0 вы, вероятно, получите намного больше обновлений.
Я бы увеличил Mindistance до 1 м как минимум и внедрить логику компенсации для достижения 1-минутного интервала в вашем коде. Вы, locationListener могут быть реализованы таким образом, что если обновления местоположения следуют слишком близко, они игнорируются и не обрабатываются.
Вы также получите разные места по слушательству вашего местоположения с другой точностью, все в течение этого минутного интервала.
Ваше слушатель местоположения может выбрать лучшую точность и помнить, когда последнее место было обработано путем поддержания состояния (lastlocationProcessedat).