Android 如何 运行 线程每 25 毫秒?

Android how to run thread for each 25 ms?

我试着运行一个接一个地穿线。它们之间的延迟必须固定为 25 毫秒。你有什么建议吗? Android这么频繁更新可以吗?

我已尝试 handler.post 并在线程内调用 handler.post。但它没有用。在那之后,我尝试了timer.schedule。尽管 timer.schedule 效果很好,但并不总是 return 准确的时间。

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);

正如我之前所说,计时器 return 通常会准时,但有时会 return 迟到。

使用 ScheduledExecutorService:

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

或者 RxJava:

Flowable.interval(0, 25, TimeUnit.MILLISECONDS).subscribe(/* Code to execute */);