繁体   English   中英

Java Handler Post Delayed任务计时器不正确

[英]Java Handler Post Delayed task is not accurate timer

我创建了两个处理程序,每个处理程序都有可运行的任务,这些任务通过以下循环运行:

// do it again 1 hundeth of a sec later
QuestionHandler.postDelayed(QuestionHandlerTask, 10); 

并通过:

// and do it again 1 sec later
GameHandler.postDelayed(GameHandlerTask, 1000); 

这两个任务都从10开始并向下计数,其结果显示在标签中。 我使用2个处理程序的原因是因为我希望1个计时器以毫秒为单位倒数,而1个计时器以秒为单位倒数。

但是,每秒运行一次的GameHandlerTask的运行速度明显快于另一个。 到1时,QuestionHandlerTask仍处于4秒:

在此处输入图片说明

这是一个众所周知的问题,还是我做错了什么严重的事情? 有什么办法可以使计时器以相同的速度运行? 在这种情况下(我需要精确的计时),还有其他可以使用的更好的方法吗?

这是因为屏幕无法每秒刷新100次,而10毫秒计时器正在发生这种情况。 因此,屏幕尝试显示您告诉它显示的每个值,但只能以其最大刷新率进行显示。

不是计时器变慢,而是屏幕无法跟上计时器。

要解决此问题,请尝试计算该数字在40毫秒内需要减少多少,然后启动40ms的计时器。 这将每秒更新屏幕25次,该屏幕应该能够处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM