#android #gps #locationlistener
#Android #gps #locationlistener
Вопрос:
каков наилучший способ и наилучший режим энергосбережения, чтобы получать следующие данные в Android с помощью LocationListener каждые 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. Можете ли вы дать мне пример??