深入理解Looper,MessageQueue,Handler

一.詳細解釋:
1.Looper對象:消息輪詢器。一個線程只能創建一個Looper對象。在主線程創建的時候就創建了。不斷的獲取MessageQueue消息隊列中的一個消息,然後交給Handler進行處理。
2.MessageQueue消息隊列:消息隊列。是由Message組成的一個隊列。Handler對象發送Message消息給消息隊列。消息的創建者就是一個Handler或者多個Handler。
3.Handler:獲取到Looper交給的消息隊列中的消息進行處理。可以在主線程和子線程中進行數據的傳遞與交互。

二.Handler機制:
這裏寫圖片描述
通俗一點講:當我們的子線程想修改Activity中的UI組件時,我們可以新建一個Handler對象,通過這個對象向主線程發送信息;而我們發送的信息會先到主線程的MessageQueue進行等待,由Looper按先入先出順序取出,再根據message對象的what屬性分發給對應的Handler進行處理!

1.Handler創建消息:
這裏寫圖片描述

2.Handler發送消息:
這裏寫圖片描述

3.Handler處理消息:
這裏寫圖片描述

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