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

问题描述 投票:0回答:1

我尝试一个接一个地运行线程。它们之间的延迟必须固定为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);

正如我之前所说的那样,计时器一般会按时返回,但有时会返回较晚

android timertask android-handler
1个回答
0
投票

使用ScheduledExecutorService

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

或者RxJava:

Flowable.interval(0, 25, TimeUnit.MILLISECONDS).subscribe(/* Code to execute */);
© www.soinside.com 2019 - 2024. All rights reserved.