Android訊息處理機制(一) 簡介

2021-08-07 15:52:04 字數 855 閱讀 4478

android應用程式的訊息處理機制是圍繞訊息佇列來實現的。每個執行緒最多有乙個訊息佇列,有了訊息佇列之後,就可以進入到乙個訊息迴圈中(進入loop中,每個執行緒最多有乙個looper物件,且主線程建立之後,系統會自動為其建立乙個looper物件和訊息佇列messagequeue),同時其他執行緒以及執行緒本身可以往這個訊息佇列傳送訊息,以便可以在這個訊息被處理時執行乙個特定的操作。這樣我們就將乙個執行緒的生命週期劃分為建立訊息佇列和進入訊息迴圈兩個階段,其中,訊息迴圈階段又劃分為傳送訊息和處理訊息兩個子階段,它們是交替進行的。

學習android訊息處理機制之前,有幾個概念(類)必須了解:

1、message:訊息,理解為執行緒間通訊的資料單元。例如後台執行緒在處理資料完畢後需要 更新ui,則可傳送一條包含更新資訊的message給ui執行緒。

2、messagequeue:訊息佇列,用來存放通過handler發布的訊息,按照先進先出執行。

3、handler

:handler是message的主要處理者,負責將message新增到訊息佇列以及對訊息佇列中的message進行處理。

4、looper:迴圈器,扮演messagequeue和handler之間橋梁的角色,迴圈取出message queue裡面的message,並交付給相應的handler進行處理。

5、執行緒:ui thread通常就是main thread,而android啟動程式時會替它建立乙個message queue。每乙個執行緒裡可含有乙個looper物件以及乙個messagequeue資料結構。在你的應用程式裡,可以定義handler的子類別來接收looper所送出的訊息。

Android訊息處理機制(一)

android 有一種叫訊息佇列的說法,這裡我們可以這樣理解 假如乙個隧道就是乙個訊息佇列,那麼裡面的每一部汽車就是乙個乙個訊息,這裡我們先忽略掉超車等種種因素,只那麼先進隧道的車將會先出,這個機制跟我們android 的訊息機制是一樣的。一 角色描述 1.looper 相當於隧道 乙個執行緒可以產...

android 訊息處理機制

首先還是推薦幾篇部落格 再來說說我的理解 訊息處理機制適用場景 比如 a 類中要控制ui介面類很多元件的屬性值,可以傳參,可以設定static,但這在有大量元件屬性值需要變化時就行不通了,這時可以運用訊息處理機制在 中通知ui介面類,在介面類中改變屬性值,並重新繪製ui.b 需要在另外的執行緒中改變...

Android訊息處理機制 二

角色綜述 回顧 1 ui thread 通常就是main thread,而android啟動程式時會替它建立乙個messagequeue。2 當然需要乙個looper物件,來管理該messagequeue。3 我們可以構造handler物件來push新訊息到message queue裡 或者接收lo...