Android重新學習記錄和心得(一)--Handler

1.關於Handler,MessageQueue,Looper,Message

https://blog.csdn.net/sinat_20059415/article/details/79178564

主要講了Handler的message發送,消息的同步異步。以前只知道Handler可以發送消息,然後一般通過handlerMessage方法來接收各種消息,發現其實Handler還可設置callback,callback會先執行,主要用來做消息的分類,或者多個地方調用Handler。Message也可以帶Callback,只不過該方法是隱藏的。

默認的handler執行時是按照MessageQueue的順序同步執行,一個Looper只允許有一個MessageQueue,但是可以有多個Handler,其實也可以讓消息異步立刻執行,需要設置MessageQueue的postSyncBarrier,設置之後會默認生成一個target爲null的消息,這時所有同步的消息將都得不到執行,只會執行異步消息,只有消息執行完之後,使用removeSymcBarrier,纔會繼續執行後續的同步消息。要執行異步消息,還需將Message設置爲Async才行。

async機制可以用來做一些消息執行的時候,保證某個消息執行之後,其他消息纔會執行的動作

syncBarrier的用處可以參考:https://blog.csdn.net/cdecde111/article/details/54670136

更詳細的syncBarrier的講解參考:https://blog.csdn.net/asdgbc/article/details/79148180

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章