這是筆記,沒有源碼分析和詳細過程,隻有自己總結出來的重點,源碼分析看參考資料,前輩寫的很好。

一個線程,一個Looper,一個MessageQueue,多個Handler
MessageQueue單連結清單結構
使用ThreadLocal機制保證一個線程一個Looper:https://www.cnblogs.com/--here--gold--you--want/p/15730088.html
記得在子線程中調用Looper.prepare建立Looper,調用Looper.loop()開始循環,調用Looper.quie()結束循環
Android主線程的Looper不用prepare,在ActivityThread就已經建立好了。
因為Looper.loop()是在子線程中調用,是以Handler的處理邏輯也就在子線程中進行了。
參考資料:
Android開發藝術探索:https://www.kancloud.cn/alex_wsc/android_art/1828638
面試:https://www2.imgeek.org/article/825358871