Handler Android 關鍵詞剖析

2022-07-10 01:48:12 字數 683 閱讀 3776

一套訊息傳遞機制,應用於多執行緒場景。  

threadlocal類用來提供執行緒內部的區域性變數。這種變數在多執行緒環境下訪問(通過get或set方法訪問)時能保證各個執行緒裡的變數相對獨立於其他執行緒內的變數。

threadlocal保證乙個執行緒對應乙個looper,同時各個執行緒之間的looper互不干擾。

looper執行緒維護乙個訊息佇列;

looper執行緒中建立handler物件才有意義,普通執行緒不能建立(具體使用looper.prepare()、looper.loop())

待執行的訊息被封裝成message物件,message新增到messagequeue。

post系列方法對應sendmessage系列方法,sendmessage需結合handlemessage方法使用,post可直接處理; 針對不同的需求,使用這兩種不同的傳送方式。

handler使用時,為避免記憶體洩漏發生,往往需要結合弱引用進行控制。

/**

* 使用弱引用方式構建handler原因:

* 非靜態內部類持有外部類的引用,使用不慎會造成記憶體溢位

*/private static class myhandler extends handler

@override

public void handlemessage(message msg)

}}

removeFromSuperview關鍵的幾個點

removefromsuperview unlinks the receiver from its superview and its window,and removes it from the responder chain.譯 把當前view從它的父view和視窗中移除,同時也把它從響應事件操...

hibernate criteria 多表關聯查詢

當qbc criteria關聯查詢的時候一般都需要取別名。今天就遇到乙個問題 先貼 修改之後正確的 override public searchresultfindlistpagebykeyword integer page,integer pagesize,string keyword,long ...

Mongoose aggregate 多表關聯查詢

使用mongoose操作mongodb資料庫進行關聯查詢是一種比較常見的操作,操作方式有哪幾種呢?下面用乙個具體的案例來演示。首先模擬一點資料,分別有 order 和 order item 兩個集合 order 集合裡的資料 order item 集合裡的資料 假設要做這樣的乙個操作 查詢 orde...