Android訊息機制(讀書筆記)

2021-07-11 21:29:16 字數 891 閱讀 1646

每個thread只有乙個looper,每個looper只對應乙個messagequeue,每個messagequeue可以有n個message,每個message可以指定乙個handler來處理事件。

handler:

1.處理message。  looper從messagequeue中取出乙個message後,首先會呼叫handler.dispatchmessage進行訊息派發,後者根據具體的策略來將message分發給相應的責任人。預設情況下handler的派發流程是:先檢查message.callback是否為空,在不為空的情況下,優先message的callback來處理。然後在檢測handler.mcallback是否為空,在不為空的條件下呼叫mcallback.handlemessage。如果前兩個都不存在,則呼叫handler.handlemessage.

2.將某個message壓入messagequeue。 handler有post和send兩個系列函式將message壓入messagequeue。send系列引數直接是message,post則將其他型別的資訊轉成message在用send來執行下一步。

messagequeue:

新建佇列

元素入列

元素出列

元素刪除

銷毀佇列

looper:

looper.prepare()   //準備工作

new handler()//建立handler

looper.loop()//迴圈

static final threadlocalsthreadlocal = new threadlocal();

public handler(){

mlooper = looper.mylooper();

mqueue = mlooper.mqueue;

android核心讀書筆記

implementing a binder or,if you want to perform ipc,but do notneed to handle multithreading,implement your inte ce using a messenger regardless,be sur...

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 從...