Прослушиватель местоположения Android не обновляется во время сообщения - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу, чтобы LocationListener на Android запрашивал обновление каждые 5 секунд

Я делаю это:

    locMgr.requestLocationUpdates(high.getName(), (long) 5000, 0,
    UpdL1 = new LocationListener() {
  public void onLocationChanged(Location location) {
    // do something here to save this new location
    if (location != null) {
        //
        updateARLoc(location.getLatitude(),location.getLongitude());
        //
        if(!creada){
        locMgr.removeUpdates(UpdL1);
        }
        } else {
        }    
  }

Я говорю обновлять каждые 5000 миллисекунд, это 5 секунд. Но он постоянно обновляется. LogCat говорит мне, что обновляется каждые 500 миллисекунд. (Каждая напечатанная буква «А» является обновлением от слушателя)

    09-14 14:57:29.998: INFO/info(3456): A
    09-14 14:57:30.018: INFO/info(3456): A
    09-14 14:57:30.918: INFO/info(3456): A
    09-14 14:57:30.928: INFO/info(3456): A
    09-14 14:57:31.988: INFO/info(3456): A
    09-14 14:57:31.998: INFO/info(3456): A
    09-14 14:57:32.958: INFO/info(3456): A
    09-14 14:57:32.988: INFO/info(3456): A
    09-14 14:57:33.948: INFO/info(3456): A
    09-14 14:57:33.948: INFO/info(3456): A

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Как вы можете найти в документации Android:

Частота уведомлений может контролироваться с помощью параметров minTime и minDistance.Если minTime больше 0, LocationManager может потенциально задерживаться на миллисекунды minTime между обновлениями местоположения для экономии энергии .Если minDistance больше 0, местоположение будет транслироваться только в том случае, если устройство перемещается на счетчики minDistance.Чтобы получать уведомления как можно чаще, установите оба параметра равными 0.

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

Кроме того, вы установили параметр minDistance на 0, что означает, что вы хотите обновлять каждые 0 метров (так часто, как это возможно).

0 голосов
/ 15 сентября 2011

http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener)

Прямо под параметрами для метода requestLocationUpdates указано:

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

requestLocationUpdates () заставляет GPS дроида пытаться исправить вашеместо нахождения.При попытке получить исправление, ваш Locationlistener может получить тонны обновлений местоположения.

После получения обновлений местоположения, GPS должен отключиться на время, указанное в параметре mintime.

...