线程间通信: Handler , Looper, MessageQueue, Message (完结)
生活随笔
收集整理的這篇文章主要介紹了
线程间通信: Handler , Looper, MessageQueue, Message (完结)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述:? ? 為了 線程間 通信方便, Handler 機制 通過 Handler 和 Looper, MessageQueue, Message 這些 類 之間的協作, 簡化 多線程的開發. ?線程的交互 會被封裝 到 Message 中, 然后 通過 Handler 的方法 把 消息 放到 MessageQueue 消息隊列中, 實現 Handler 機制的線程 都會 調用 Looper 的 loop() 方法, 則 Looper 作為 消息分發者的 作用就體現出來了. ?loop() 方法中, 會 從消息隊列 MessageQueue 中 獲取 Message, 然后 將 獲取到的Message 丟給 負責 處理消息的 Handler . ?Handler 再 ?根據 Message 中的 callback(Runnable) 是否為 空 以及 Handler 中的 回調 mCallback(Handler.Callback) 是否為空 來決定 最終交給 哪個 方法進行消息處理.? ----------------------------------------------------------------------------------------------------------------------- Handler 機制中, 各個角色的分工如下: 1. Handler : ?負責消息(Message) 的發送 和 處理 2. Looper : 負責 消息的 分發 3. MessageQueue : 負責消息的 管理 4. Message : ?帶有 int 型參數 what 以及 arg1 和 arg2,這些是為了 簡化 通過 setData(Bundle bundle) 設置的 數據, ?以及 一個 任意 對象的 參數 obj. ?如果期望的 話 還 可以 帶一個 Runnable 類型的參數 callback, -------------------------------------------------------------------------------------------------------------------- 第一部分: ?Handler?
- Handler 的創建 ?:?
- Handler 消息的發送: ?
- ?looper 的初始化:
- Looper.loop() 方法的調用
轉載于:https://www.cnblogs.com/devinzhou/p/3578157.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的线程间通信: Handler , Looper, MessageQueue, Message (完结)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绝地求生哪里必刷98k(《绝地求生》将于
- 下一篇: ToString() 格式化字符串总结