簡而言之,每個thread裡面有looper(通過prepare初始化,通過loop進入死迴圈)。每個handler將自己的msg放入looper死迴圈裡面,然後looper迴圈檢測訊息再傳送回給handler。
*記憶體洩漏問題;
這裡需要注意乙個記憶體洩漏問題,就是當activity退出的時候會出現記憶體洩漏(因為looper 還在迴圈啊)。所以說在退出activity的時候需要退出looper。
還有乙個辦法把handler設定為static(不過退出activity的時候還是要結束looper節省資源),但是這時候activity的非static沒法用了。所以這個時候應該使用weakreference來弱引用activity。
最後簡單說一下handlerthread 和 handler的區別了。
其實。。。也很簡單。handlerthread嘛,就是handler、looper、和thead的結合,方便開發而已。
handler通訊機制
android應用開發有個預設規則,不在ui執行緒做耗時操作。耗時操作結果反饋給使用者也不能直接更新ui。耗時操作必須開子執行緒去做,實現的方式很多,handler asynctask service。每個人偏好不同,但是各有各的優點,根據不同的需求選擇適當的實現方式,是我一直追求的目標,每一種至少...
Handler機制整理
handler機制整理 目錄介紹 1.關於handler訊息機制圖 2.關於handler基本介紹 3.使用handler的幾種方法 4.關於handler底層原始碼解讀 1.關於handler訊息機制圖 2.關於handler機制基本解讀 message 訊息,其中包含了訊息id,訊息處理物件以及...
Handler訊息機制
android的訊息機制主要是指handler的執行機制,也就是handler message messagequeue looper threadlocal之間的工作過程。handler 主要用於傳送和處理訊息。messagequeue 訊息佇列,主要用於存放所有通過handler傳送的messa...