цикл действия с использованием системы миллисекунд Android Java - PullRequest
2 голосов
/ 02 февраля 2012

Привет, я занимаюсь разработкой приложения, в котором я обновляю маркер на картах Google и перемещаю его к различным географическим точкам.

Я перемещаю маркер на несколько метров за 10 миллисекунд, чтобы добиться плавного движения на карте.

Я использую таймер обратного отсчета для этого (например, перемещайте маркер на несколько метров каждые 10 миллисекунд), но, как вы знаете, он не точный.

Что еще я могу использовать для цикла действия, и я могу быть более точным?

Должен ли я использовать System.nanotime();

А если это лучший способ, могу я привести пример?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Попробуйте TimerTask & Timer

Timer timer = new Timer();
TimerTask task = new TimerTask() {
    @Override
    public void run() {
        // YOUR CODE HERE
    }
};

timer.scheduleAtFixedRate(task, 0, 10000);

Надеюсь, это поможет вам!

0 голосов
/ 02 февраля 2012

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

...