我尝试一个接一个地运行线程。它们之间的延迟必须固定为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);
正如我之前所说的那样,计时器一般会按时返回,但有时会返回较晚
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(/* Your Runnable */, 0, 25, TimeUnit.MILLISECONDS);
或者RxJava:
Flowable.interval(0, 25, TimeUnit.MILLISECONDS).subscribe(/* Code to execute */);