我尝试一个接一个地运行线程。它们之间的延迟必须固定为25 ms。你有什么建议吗?可以如此频繁地更新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);
正如我之前说的,计时器通常按时返回,但有时它会延迟返回。
答案 0 :(得分:0)
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(/* Your Runnable */, 0, 25, TimeUnit.MILLISECONDS);
或RxJava:
Flowable.interval(0, 25, TimeUnit.MILLISECONDS).subscribe(/* Code to execute */);