handler以及handleThread相關的資識

handler簡介

handler是android中異步消息處理機制 ,handler裏有一個looper對象用來去輪詢handler的任務, 通過其構造方法可以去指定 new Handler(looper對象)  looper在什麼線程裏創建的其handmessage方法就會到什麼線程去執行, 主線程不用系統會默認去創建looper , 非主線程需要去手動創建


一般是用於在子線程裏去 發送消息給主線程去更新 ui

handlerThread簡介

這個類是一般是用於 主線程去通過子線程去幹一些耗時的操作 其父類是Thread類
基本用法
將實例化後的handlerThread類的looper對象傳給 一個新的handler對象,然後這個新的handdler對象的handemessage方法就執行在子線程了
注意: getLooper方法裏返回的looper對象是在子線程裏去實例化的 所以在new Handler()構造裏傳值的時候可能會爲空,所以其getLooper方法裏做了一個同步的操作


getLooper裏作的操作 
1.先判斷這個線程是否還活着
2.如果run方法還沒有被執行時 就睡眠線程在此處


run方法主要乾的一些事
1.給mLooper成員變量賦值
2.賦值成功後 喚醒線程 成功返回mLooper對象


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章