Android消息機制學(xué)后感之到底是個啥

handler是個啥

線程和線程間通信的處理實體闹丐,包括主線程和子線程门粪、子線程和子線程弧圆。發(fā)送消息呢就相當(dāng)于你在京東下單了一堆零件要裝個電腦,接受消息就是零件送到你家了你開始組裝這個電腦至扰。

message是個啥

handler的發(fā)送出去的東西,對就是這個東西它就是message资锰,它內(nèi)部存儲了很多信息obj what arg runnable 從頭到腳的拼裝起了一個message敢课,當(dāng)然這個東西缺胳膊少腿的時候也是可以被發(fā)送出去的,畢竟是“它”1炼拧t崦汀!

messagequeue是個啥

這個messagequeue就是裝message的箱子接剩,里面存儲了很多等待著被handler處理的“它”切厘,注意這個箱子是一種單鏈表的數(shù)據(jù)結(jié)構(gòu)有存有取,每取走一個message就刪掉一個message和生活中的“箱子”真的很像懊缺。

looper是個啥

你handler是厲害把需要的零件一下單就不管了等著送到就行了疫稿,那誰給你送到的呢培他?就是這個looper,他相當(dāng)于快遞一樣不斷的運送你要的零件到你的手里給你處理遗座。
注意了 注意了舀凛!每個線程都且僅有一個looper,這個looper需要初(zhun)始(bei)化一下prepare();途蒋,當(dāng)你準(zhǔn)備好了在開始循環(huán)loop()猛遍。

class LooperThread extends Thread {
       //其他線程可以通過mHandler這個引用給該線程的消息隊列添加消息
       public Handler mHandler;
       public void run() {
            Looper.prepare();
            //需要在線程進入死循環(huán)之前,創(chuàng)建一個Handler實例供外界線程給自己發(fā)消息
            mHandler = new Handler() {
                public void handleMessage(Message msg) {
                    //Handler 對象在這個線程構(gòu)建号坡,那么handleMessage的方法就在這個線程執(zhí)行
                }
            };
            Looper.loop();
        }
    }

threadlocal是個啥

這貨呢就是個線程內(nèi)部信息存儲類懊烤,我們?yōu)樯对谶@里說到它呢!宽堆?因為我們的looper就是被儲存在這貨里面的腌紧,當(dāng)然了他還是可以存好多其他類型的東西的,它可以在指定的線程中存儲然后在指定的線程中拿到你存的東西(不同線程存的東西不一樣取出來的也不一樣)畜隶,正是因為這樣的機制它可以為我們每一個線程存儲looper壁肋,畢竟你也不想自己的快遞被別人拿了對吧!

ps

流程中有兩個無限循環(huán)

  • 一個是looper的 loop()方法 可以使用looper.quit()退出循環(huán)
  • 一個是messagequeue的取出next()方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末籽慢,一起剝皮案震驚了整個濱河市浸遗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌箱亿,老刑警劉巖跛锌,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異极景,居然都是意外死亡察净,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門盼樟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氢卡,“玉大人,你說我怎么就攤上這事晨缴∫肭兀” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵击碗,是天一觀的道長筑悴。 經(jīng)常有香客問我,道長稍途,這世上最難降的妖魔是什么阁吝? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮械拍,結(jié)果婚禮上突勇,老公的妹妹穿的比我還像新娘装盯。我一直安慰自己,他們只是感情好甲馋,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布埂奈。 她就那樣靜靜地躺著,像睡著了一般定躏。 火紅的嫁衣襯著肌膚如雪账磺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天痊远,我揣著相機與錄音垮抗,去河邊找鬼。 笑死拗引,一個胖子當(dāng)著我的面吹牛借宵,可吹牛的內(nèi)容都是我干的幌衣。 我是一名探鬼主播矾削,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼豁护!你這毒婦竟也來了哼凯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤楚里,失蹤者是張志新(化名)和其女友劉穎断部,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體班缎,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡蝴光,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了达址。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔑祟。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沉唠,靈堂內(nèi)的尸體忽然破棺而出疆虚,到底是詐尸還是另有隱情,我是刑警寧澤满葛,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布径簿,位于F島的核電站,受9級特大地震影響嘀韧,放射性物質(zhì)發(fā)生泄漏篇亭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一锄贷、第九天 我趴在偏房一處隱蔽的房頂上張望译蒂。 院中可真熱鬧鄙币,春花似錦、人聲如沸蹂随。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岳锁。三九已至绩衷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間激率,已是汗流浹背咳燕。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乒躺,地道東北人招盲。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像嘉冒,于是被迫代替她去往敵國和親曹货。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容