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語句進行匹配處理...