2
如何刷新/分派在處理程序中等待的所有掛起消息和回調?如何在處理程序中刷新待處理消息和回調
當我的服務被銷燬時,我需要這個來處理某些異步事件。
我想立即調度所有消息/回調,而不是刪除它們。我不使用任何延遲的消息。
如何刷新/分派在處理程序中等待的所有掛起消息和回調?如何在處理程序中刷新待處理消息和回調
當我的服務被銷燬時,我需要這個來處理某些異步事件。
我想立即調度所有消息/回調,而不是刪除它們。我不使用任何延遲的消息。
假設您不使用任何延遲的消息,則會有一個待處理消息隊列,每個消息都必須在關聯的線程中處理。這意味着線程無法處理下一條消息,除非當前消息處理完成。因此,總而言之,如果沒有使用延遲消息,那麼處理程序的消息循環已經在盡最大努力來刷新隊列。唯一可以使此沖洗更快的是更好的消息處理。這不是Handler的工作。
我明白你的觀點了。我的服務在主線程中運行的方法(如onDestroy())實際上是作爲消息分派的結果調用的。所以,我不能在這種方法中強制消息刷新,也就是說,在處理消息時。實際上,我只是發現了一個解決方案,只有噹噹前線程與主服務線程不同時,才使用處理程序發佈事件。否則,我立即發送事件。它解決了我的問題。我認爲這符合「更好的消息處理」的條件。謝謝 – olivierg 2011-06-15 12:55:34
@inazaruk延遲的信息是什麼?我有一個類似的場景,但想在調用onDestroyView之前刷新延遲的消息。那可能嗎? – karate 2017-07-27 13:10:59