Android 消息機制

1. 什麼是消息機制

Handler是Android消息機制的上層接口,常用於將一個任務切換到所在線程執行(更新UI),Handler的運行機制就是Android的消息機制。

 

2. Handler附帶

1. Message

消息。

2. MessageQueue

消息隊列。

以單鏈表的形式存儲消息。

3. Looper

無限循環的去查找是否有新消息,有就去處理,否則一直等待。

如何爲線程創建Looper。

Looper.prepare();//創建

Handler h = new Hanlder();

Looper.loop();//開啓消息循環

4. ThreadLocal

ThreadLocal 是一種可以在不同線程中互不干擾的存儲並提供數據的線程內部數據存儲類,Handler會採用當前線程的Looper來構造消息循環。使用ThreadLocal 可以獲取Looper,線程默認沒有Looper,需要自己創建。

 

3. Handler的工作原理

Handler創建完畢之後 使用Handler的方法發送消息,

send方法,post方法(最終也是通過send),

然後MessageQueue 的 enqueueMessage方法將這個消息放入消息隊列,

Looper發現有新消息, 就會去處理,最終交給Handler的dispatchMessage() handleMessage方法就會被調用。

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