LocationManager звоня onLocationChanged слишком часто?

Я создал LocationManager для получения текущего местоположения каждые 2 минуты:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 120000, 0, this);

Это хорошо работает, и onLocationChanged называют каждые 2 минуты как ожидалось. Однако кажется, что это называют многократно по 10-40 (случайная сумма) вторым промежутком каждые 2 минуты. Я регистрирую каждое местоположение, полученное в onLocationChanged, таким образом, вот некоторые образцы для понимания то, что продолжается:

В 17:30

GPS 32.0 50.66318929195404 10.735434293746948 0.0 2010.08.07 17:30:10
GPS 32.0 50.66315710544586 10.735423564910889 0.0 2010.08.07 17:30:14
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:17
GPS 32.0 50.66314101219177 10.735418200492859 0.0 2010.08.07 17:30:20
GPS 24.0 50.66313564777374 10.735418200492859 0.5 2010.08.07 17:30:24
GPS 32.0 50.663098096847534 10.735573768615723 0.0 2010.08.07 17:30:28         
GPS 32.0 50.663065910339355 10.735611319541931 0.0 2010.08.07 17:30:31

Затем я не получаю больше обновлений в течение 2 минут.

В 17:32

GPS 32.0 50.661821365356445 10.737022161483765 1.0 2010.08.07 17:32:39
GPS 16.0 50.66170871257782 10.737043619155884 1.8200275 2010.08.07 17:32:45
GPS 24.0 50.661579966545105 10.737027525901794 1.25 2010.08.07 17:32:50
GPS 16.0 50.66150486469269 10.73712408542633 1.0 2010.08.07 17:32:55
GPS 12.0 50.661579966545105 10.73715090751648 0.9013878 2010.08.07 17:33:01
GPS 24.0 50.66139221191406 10.737038254737854 1.5811388 2010.08.07 17:33:06
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 16.0 50.66141366958618 10.737301111221313 0.70710677 2010.08.07 17:33:12
GPS 24.0 50.661311745643616 10.737070441246033 1.118034 2010.08.07 17:33:16
GPS 16.0 50.66122591495514 10.737177729606628 1.118034 2010.08.07 17:33:22
GPS 12.0 50.66124200820923 10.737220644950867 1.3462912 2010.08.07 17:33:26
GPS 12.0 50.661311745643616 10.737268924713135 3.6055512 2010.08.07 17:33:25

И так далее... затем другой набор обновлений 2 минуты спустя в 17:35.

Действительно ли это - стандартное поведение? Я ожидал получать только одно местоположение каждые 2 минуты и промежуток, в котором оно дает мне, обновления информации о местоположении кажутся довольно случайными. Идеально я предпочел бы только добираться, одно местоположение... является там способом сделать это?

8
задан migueljuan 10 August 2010 в 13:54
поделиться

1 ответ

Из документации requestLocationUpdates (поставщик String, long minTime, float minDistance, LocationListener listener) с указанием параметра minTime :

" минимальный интервал времени для уведомлений в миллисекундах. Это поле используется только в качестве подсказки для экономии энергии, а фактическое время между обновлениями местоположения может быть больше или меньше этого значения »

. Итак, ответ на ваши вопросы, да, это стандартное поведение и, нет, вы не можете это изменить.

Если это проблема для вас, вы можете игнорировать вызовы метода обратного вызова, если не прошло определенное время.

13
ответ дан 5 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: