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