Каков наилучший способ получать местоположение в Android каждые 5 секунд

#android #gps #locationlistener

#Android #gps #locationlistener

Вопрос:

каков наилучший способ и наилучший режим энергосбережения, чтобы получать следующие данные в Android с помощью LocationListener каждые 5 секунд:

  1. Местоположение (широта, долгота)
  2. Точность
  3. Высота
  4. Скорость
  5. Подшипник

Я попробовал это (LocationListener):

  @Override
public void onLocationChanged(Location location) {
   // ...Code...
}
 

Но это обновляется только в том случае, если местоположение изменилось, но мне нужно каждые 5 секунд и только там. Может быть, кто-нибудь может показать мне пример.

Спасибо за ответы.

Комментарии:

1. если местоположение не меняется, просто используйте то же, что и раньше…

2. Но если местоположение меняется, происходит обновление за эти 5 секунд.

3. вы читали документ для requestLocationUpdate ? вы не видели minTime параметр? «minTime long: минимальный интервал времени между обновлениями местоположения в миллисекундах»

4. Да, но это не работает. Ансер от Алекса Шутова работает.

Ответ №1:

Используйте метод Observable от RxJava.интервал (5, TimeUnit.Секунды). … и ubsubscribe от него, когда обновления больше не нужны. В методе обработки событий (subscribe ()) местоположение опроса вручную.

 Subscription pollingConnection = Observable.interval(5, TimeUnit.SECONDS)
                .observeOn(Schedulers.computation())
                .map(t -> {
                    // get all your readings manually (it is executed in background because of
                    //  .observeOn(Schedulers.computation())
                    return  t;
                })
                .subscribe(t -> {
                }, e -> {
                });

        // call pollingConnection.unsubscribe(); when update is no longer needed
 

Комментарии:

1. Можете ли вы дать мне пример??