Android非同步訊息處理機制

2021-08-14 11:53:46 字數 1183 閱讀 7393

android

中的非同步訊息處理主要由四個部分組成,

message

、handler

、messagequeue

和looper。 

1.message

message

message

的 what

字段,還可以使用

arg1

和 arg2

欄位來攜帶一些整型資料,使用

obj

字段攜帶乙個

object

物件 。

2. handler

handler

顧名思義也就是處理者的意思,它主要是用於傳送和處理訊息的。傳送訊息一般是使用

handler

的 sendmessage()

方法,而發出的訊息經過一系列地輾轉處理後,最終會傳遞到

handler

的 handlemessage()

方法中。 除了sendmessage()方法外,還可以使用post(new runnable(){};)來處理非同步,在匿名內部類runnable中重寫run()方法,將處理過程轉移到主線程中。

//以下**在子執行緒中執行
public void onfinish(string response) 

});}

3. messagequeue

messagequeue 是

訊息佇列,它主要用於存放所有通過

handler

傳送的訊息。這部分訊息會一直存在於訊息佇列中,等待被處理。每個執行緒中只會有乙個

messagequeue

物件。4. looper

looper

是每個執行緒中的

messagequeue

的管家,呼叫

looper

的 loop()

方法後,就會進入到乙個無限迴圈當中,然後每當發現

messagequeue

中存在一條訊息,就會將它取出, 並傳遞到

handler

的 handlemessage()

方法中。 每個執行緒中也只會有乙個

looper

物件。

(注:在《第一行**》的基礎上作了修改)

android非同步訊息處理機制

我們都知道android的ui更新操作都是在主線程執行的,但是很多時候我們都需要在子執行緒 中執行一些費時的操作,以獲取我們所需要的變更資料。很多剛入門的同學都容易犯的乙個錯誤就是在子執行緒試圖去更新ui控制項,這樣做是被android禁止的,所以會出現崩潰的現象。android的非同步資訊處理機制...

Android 解析非同步訊息處理機制

android中的非同步訊息處理主要由四部分組成,message handler messagequeue looper.1.message message是執行緒之間傳遞的訊息,它可以在內部攜帶少量的資訊,用於在不同執行緒之間交換資料。message有what欄位,除此以外,還可以使用arg1和a...

Android 解析非同步訊息處理機制

android中的非同步訊息處理主要有四個部分組成 message handle messagequeue和looper 1.message message是執行緒之間傳遞的訊息,它可以在內部攜帶少量的資訊,用於在不同執行緒之間交換資料 2.handler 主要用於傳送和處理訊息的。傳送訊息一般是使...