1. 程式人生 > >解析非同步訊息處理機制

解析非同步訊息處理機制

 Android 中的非同步訊息處理主要有四部分組成:Meeage、Handler、MessageQueue 和 Looper。其中Meeage 是執行緒之間傳遞的訊息,它可以攜帶少量的資訊,用於在不同執行緒之間交換資料。Handler是傳送和處理訊息的。傳送訊息一般是使用Handler的sendMessage()方法,發出的訊息經過處理後傳遞到Handler的handleMessage()中。MessageQueue是訊息 佇列。主要用於存放Handler發出的訊息。這部分訊息會一直存在訊息佇列中,等待被處理。每個執行緒中只有一個MessageQueue物件。Looper是每個執行緒中的MessageQueue的管家,呼叫Looper的loop()方法後,就會進入一個無限迴圈中,然後每當發現MessageQueue中存在一條資訊,就會把它取出來,傳遞到Handler的handleMessage()。

  非同步訊息處理的整個流程:建立Handler 物件 --> 重寫handleMessage()方法-->建立Message物件 --> 使用handler.sendMessage()傳送訊息。(這裡是可見的,Looper處理的過程並不需要我們管理,我們只要傳送訊息,Looper就會進行處理)。