這篇文章主要目的是簡單總結訊息機制的工作原理以及解決一些疑惑點
android的訊息機制主要是指 handler 的執行機制,這個機制不僅包含傳送訊息的 handler ,還包含訊息儲存單元 messagequeue 和 不停從 messagequeue 取出訊息的 looper 。其實 handler 的主要作用的將乙個任務切換到指定的執行緒中去執行,比如在子執行緒內將文字內容傳遞到 ui 主線程更新 ui,不過這個文字內容被我們抽象化成了 訊息。
從右邊的方框開始講起。
基本原理就這樣,比較簡單,接下來解決經典問題。
looper 在主線程中做死迴圈取訊息,平時我們沒有使用到 handler 發訊息時主線程也沒有卡死?
Android訊息機制
looper執行緒 主人 的 message queue 郵箱 唯一的管理人員 handler快遞小哥 跟管理人員looper溝通,送 push 新郵件 訊息 讓管理人員looper代簽扔進郵箱 message queue,也接收管理人員從郵箱拿出來的件。message queue 訊息佇列 主人的...
android 訊息機制
color green 一 角色描述 1.looper 乙個執行緒可以產生乙個looper物件,由它來管理此執行緒裡的message queue 訊息佇列 2.handler 你可以構造handler物件來與looper溝通,以便push新訊息到message queue裡 或者接收looper 從...
Android訊息機制
參考文章 答案在於 threadlocal。看 一下子就可以知道了 一開始就構造了乙個looper,我們看looper.mylooper 做了什麼。可以 看到就是呼叫了一下sthreadlocal.get 看一下sthreadlocal的定義 這裡說,如果不呼叫prepare 方法就會返回空,我們去...