Handler推薦的構造方式

2021-10-06 20:12:03 字數 1095 閱讀 1974

開啟handler的api文件後,我們會看到它的四個構造方法,以及其中兩個的帶有的長長的不推薦及其原因注釋

// 不推薦的構造方法

public

handler()

;public

handler

(handler.callback callback)

;// 推薦構造方法

public

handler

(looper looper)

;public

handler

(looper looper, handler.callback callback)

;

推薦的構造方法中都需要明確傳入looper物件。這是因為隱式指定looper物件具有很大的隱患。

雖然每乙個執行緒只能存在乙個looper物件,但開啟乙個新的執行緒並不會自動建立乙個新的looper物件(主線程除外,建立主線程時會自動建立乙個looper物件)。如果我們打算從主線程傳送message到子執行緒處理,如果沒有在子執行緒建立乙個新的looper物件,然後new handler()這樣建立handler物件就會丟擲錯誤,程式崩潰。

顯式指定handler關聯的looper物件比起讓handler隱式選擇乙個looper物件的好處顯而易見:它能避免handler關聯到不是你所期望的執行緒,還能給你提個醒,讓你記得在需要的時候,給子執行緒開個looper來提取message

怎麼樣獲得主線程的looper?

looper有乙個靜態方法,可以獲取到主線程的looper

public

static looper getmainlooper (

);

推薦系統之 UGC標籤推薦方式

資料 演算法 對於上面的演算法,使用者u對物品i的興趣公式如下 p u i b n u,b nb,i p u,i sum b n p u,i b nu,b n b,i 演算法缺點 演算法改進 這裡利用了tf idf的思想,通過上面的公式就可以對熱門標籤進行懲罰。其中分子表示的使用者u的常用標籤,分母...

java構造物件的方式

開發專案中,建立物件時,總是例項化物件,採用物件.set 的方法,當碰到物件的字段很多時,寫的 重複性高,所以總結了建立物件的幾種方式,個人偏愛第一種 一種 構造器模式 例子 共3步 1.構造乙個person物件,裡面的字段name名字 必傳引數 學號 必傳引數 年齡 選傳引數 班級 選 傳引數 2...

建構函式的繼承方式

主要分為兩部分,第一部分是es5環境下的繼承,另外一部分是es6部分的繼承,首先先看es5,如何通過建構函式的形式實現繼承。1 原型鏈繼承function foo name foo.prototype.age function function fn name fn.prototype new fn...