第10章 android的訊息機制

2021-08-09 02:20:19 字數 572 閱讀 8782

handler需要messagequeue和looper支撐。messagequeue翻譯是佇列實質採用單鏈表儲存訊息列表.looper以無限迴圈的方式去查詢新訊息,threadlocal實質不是執行緒而是在每個執行緒中儲存資料,並且可以輕鬆獲取到每個執行緒的lopper.主線程activitythread建立handler時就會建立looper.

looper和activitythread,ams都有用到threadlocal,threadlocal適用於以執行緒為作用域並且不同執行緒具有不同的資料副本。

messagequeue分別通過插入enqueuemessage和讀取next.

handler在子執行緒需要looper.prepare()建立乙個looper,然後通過looper.loop()迴圈.

handler傳送訊息進訊息佇列,messagequeue的next方法返回這條訊息給looper,最終交給dispatchmessage呼叫.

android的主線程是activitythread,主線程入口方法是main,在main方法中通過lopper.preparemainlooper()來建立主線程的looper和messagequeue。

第10章 函式

定義函式的格式 name command list 呼叫函式的格式 name 省略括號 檢視到所宣告的函式定義 declare f name 取消定義的函式,可以使用unset命令 unset name 案例 bin bash 定義函式printmsg用來輸出資訊到終端螢幕,該函式至少需要兩個引數 ...

第10章第8題

mylist.h ifndef mylist h define mylist h include const int len 10 class mylist endif void show double mid 這個函式用於簡單的顯示乙個double mylist.cxx include mylis...

Android中Handler訊息傳遞機制

因為是在專案中的收穫,所以不全,以後遇到其他的我會加上。安卓中用handler機制來實現主線程和子執行緒之間的通訊,通訊的媒介是message的例項。首先要在主線程宣告乙個handler物件,然後重寫裡面的handmessage message msg 方法,用switch case語句進行匹配處理...