Android как запустить поток за каждые 25 мс? - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь запускать потоки один за другим.Задержка между ними должна быть установлена ​​равной 25 мс.У вас есть какие-нибудь предложения?Можно ли так часто обновлять Android?

Я пробовал handler.post и звонил handler.post в теме.Но это не сработало.После этого я попробовал timer.schedule.Хотя timer.schedule работает хорошо, он не всегда возвращает точное время.

long startTime,delay,nextThread =25;
...
timer.schedule(new TimerTask() 
{
    @Override
    public void run() {
        startTime = System.currentTimeMillis();
        /*
            do something and show on UI;
        */
        delay = (System.currentTimeMillis() - startTime);
             if(delay<0)
                 delay=0;
             nextThread = 25 - delay;
             if (nextThread<0)
                 nextThread=0;
    }
},0,nextThread);

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

1 Ответ

0 голосов
/ 05 апреля 2019

Используйте ScheduledExecutorService:

Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(/* Your Runnable */, 0, 25, TimeUnit.MILLISECONDS);

или RxJava:

Flowable.interval(0, 25, TimeUnit.MILLISECONDS).subscribe(/* Code to execute */);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...