關鍵詞:消息機制 / Handler
本次筆記梳理了和 Android 的消息機制的知識點。Handler 是 Android 消息機制的上層接口,通過它可以輕松將一個任務切換到 Handler 所在的線程中去執行。Android 的消息機制主要是指 Handler 的運行機制,Handler 的運行需要底層的 MessageQueue 和 Looper 的支撐。 有時候需要在子線程中進行耗時的 I/O 操作,可能是讀取文件或者訪問網絡等,當耗時操作完成之后可能要在 UI 上做一些改變,由于 Android 開發規范的限制,我們并不能在子線程中訪問 UI 控件,否則就會觸發程序異常,這個時候通過 Handler 就可以將更新 UI 的操作切換到主線程中執行。(所以 Handler 常被開發者用來更新 UI)
ThreadLocal 是一個泛型類 public class ThreadLocal<T>
;
Looper 扮演著消息循環的角色,不停的從 MessageQueue 中查看是否有新消息,如果有新消息就會立刻處理,否則會一直阻塞在那里;
Handler 的工作需要 Looper,沒有 Looper 的線程就會報錯;通過 Looper.PRepare() 即可為當前的線程創建一個 Looper,接著通過 Looper.loop() 來開啟消息循環;quit 會直接退出 Looper,而 quitSafely 只是設定一個退出標記;Looper 必須要有退出,否則 loop 方法就會無限循環下去End.
Note by HF. Learn from 《Android 開發藝術探索》
新聞熱點
疑難解答