2014-08-29 92 views
0

Handler.postDelayed(可運行R,長delayMillis)說的文檔 -在Handler.postDelayed()方法中,delayMillis參數實際上代表什麼?

導致要被添加到消息隊列中的可運行R,經過指定的時間量後運行 。

r將被執行的Runnable。 delayMillis直到Runnable將被執行的延遲(以毫秒爲單位)。

注意:最後一個字伏法添加到Message Queue。 Runnable即時添加到消息隊列的末尾。也就是說,執行此Runnable的延遲時間等於執行消息隊列中Runnable前的消息/可運行時間。如何保證兩個時間是平等的?我錯過了什麼嗎?例如,假設MessageQueue當前包含A,B,C,分別佔用1,1.6,2秒,而handler.postDelayed(R,4000)現在在MessageQueue的末尾附加R。 A,B,C將在4.6秒內完成,但R計劃在4秒後運行。這怎麼可能?如果延遲超過4.6秒會怎樣?

URL - Android Reference page for Handler postDelayed

+1

基本上它會在至少'delayMillis'毫秒後運行。 – Simas 2014-08-29 20:13:12

回答

2

這不是一個確切的延遲。將延遲看作「不早於」。延遲之後,可運行的程序有資格執行,但只有當消息隊列處理了任何先前的消息時才運行。

道德:確保您在不阻塞線程的情況下處理您的消息/可運行內容。

相關問題