2011-06-15 35 views

回答

3

假設您不使用任何延遲的消息,則會有一個待處理消息隊列,每個消息都必須在關聯的線程中處理。這意味着線程無法處理下一條消息,除非當前消息處理完成。因此,總而言之,如果沒有使用延遲消息,那麼處理程序的消息循環已經在盡最大努力來刷新隊列。唯一可以使此沖洗更快的是更好的消息處理。這不是Handler的工作。

+0

我明白你的觀點了。我的服務在主線程中運行的方法(如onDestroy())實際上是作爲消息分派的結果調用的。所以,我不能在這種方法中強制消息刷新,也就是說,在處理消息時。實際上,我只是發現了一個解決方案,只有噹噹前線程與主服務線程不同時,才使用處理程序發佈事件。否則,我立即發送事件。它解決了我的問題。我認爲這符合「更好的消息處理」的條件。謝謝 – olivierg 2011-06-15 12:55:34

+0

@inazaruk延遲的信息是什麼?我有一個類似的場景,但想在調用onDestroyView之前刷新延遲的消息。那可能嗎? – karate 2017-07-27 13:10:59