說Handler之前,先把和Handler有關的幾個組件也說一下
Message:handler發送和處理的訊息
Looper :每個執行緒只有一個looper,是個死回圈,loop方法負責從MessageQueue 中拿取資料,然后把資料交給發送訊息的Handler進行處理,
MessageQueue:訊息佇列,遵循先進先出的原則,創建looper物件的時候,會在它的構造器中創建一個MessageQueue,用來管理Message,
Handler :兩大作用發送訊息和處理訊息,Handler將訊息發送給指定的MessageQueue,也就是說,想要Handler正常使用,必須在當前執行緒有MessageQueue,而MessageQueue是通過Looper管理的,也就是說要正常使用Handler必須要有Looper物件,為了保證有Looper基本上分兩種方式
主執行緒中:系統已經初始化了一個Looper物件,所以可以直接創建Handler發送和處理訊息就行了,
子執行緒中:必須自己創建一個looper物件,啟動后,looper會進入死回圈不斷從MessageQueue中區訊息分發給對應的Handler進行處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/277058.html
標籤:其他
上一篇:如果一個Activity啟動比較慢,需要優化,你覺得可以從哪些方面入手?
下一篇:JAVA 整合 極光推送
