簡體   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