Android中消息系統(tǒng)模型和Handler Looper

Android中消息系統(tǒng)模型和Handler Looper

ID:240252

大小:185.50 KB

頁數(shù):20頁

時間:2017-07-12

Android中消息系統(tǒng)模型和Handler Looper_第1頁
Android中消息系統(tǒng)模型和Handler Looper_第2頁
Android中消息系統(tǒng)模型和Handler Looper_第3頁
Android中消息系統(tǒng)模型和Handler Looper_第4頁
Android中消息系統(tǒng)模型和Handler Looper_第5頁
資源描述:

《Android中消息系統(tǒng)模型和Handler Looper》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、Android中消息系統(tǒng)模型和HandlerLooper  作為Android中大量使用的Handler,結(jié)合Thread使其具有眾多的使用形式和方法,讓我一時感覺這個東西有些玄乎,不明所以然,這到底是一個什么樣的存在呢?通過網(wǎng)上資料和源碼的學(xué)習(xí),這個Handler也差不多弄清楚了,現(xiàn)在總結(jié)下這個學(xué)習(xí)結(jié)果。?一Handler作用和概念通過官方文檔了解到Handler的大致概念是:  Handler能夠讓你發(fā)送和處理消息,以及Runnable對象;每個Handler對象對應(yīng)一個Thread和Thread的消息隊列。當(dāng)你創(chuàng)建一個Handler時,它就和Thread的消息隊列綁定在一起,然

2、后就可以傳遞消息和runnable對象到消息隊列中,執(zhí)行消息后就從消息隊列中退出。?  Handler的作用就是:調(diào)度消息和runnable對象去被執(zhí)行;使動作在不同的線程中被執(zhí)行?! ‘?dāng)一個應(yīng)用程序中進(jìn)程被創(chuàng)建時,它的主線程專門運行消息隊列(messageQueue),去管理頂層的應(yīng)用程序相關(guān)的對象如:activity,broadcastReceiver,windows等,你可以創(chuàng)建你的Thread,和主線程進(jìn)行交互——通過Handler,交互的方法就是通過post或者sendMessage。但是在你的新線程中,給定的Message或者Runnable,會在適當(dāng)?shù)臅r候的被調(diào)度和處理

3、。(即不會被立即處理——阻塞式)。  這是官方文檔中對Handler描述的大致意思(英文比較爛翻譯不定正確)。?從這些文檔中我們大概了解到handler干了些什么:·  運行在某個線程上,共享線程的消息隊列;·  接收消息、調(diào)度消息,派發(fā)消息和處理消息;·  實現(xiàn)消息的異步處理;基本上就是和消息有關(guān),那么這實際上是在干什么呢?  ——建立消息處理模型/系統(tǒng)。    要學(xué)習(xí)Handler,看到肯定是和消息有關(guān),可能還是需要先熟悉一下消息系統(tǒng)的構(gòu)成和簡單原理。下面就先學(xué)習(xí)一下消息系統(tǒng)的基本原理。二消息系統(tǒng)的基本原理和構(gòu)成??????從一般的消息系統(tǒng)模型的建立大致構(gòu)成以下幾個部分:    

4、l?消息原型    l?消息隊列    l?發(fā)送消息    l?消息循環(huán)    l?消息獲取    l?消息派發(fā)    l?消息處理大致模型圖如下:?    ??  消息系統(tǒng)模型一般會包括以上七個部分(消息原型,消息隊列,消息發(fā)送,消息循環(huán),消息獲取,消息派發(fā),消息處理)。實際上的核心是消息隊列和消息循環(huán),其余部分都是圍繞這兩部分進(jìn)行的?! 那懊嫖臋n的分析中我們知道Handler就是用來建立消息處理的系統(tǒng)模型,那么和這里基本消息系統(tǒng)模型相比,那么Handler又是如何囊括這七個部分的呢?  在Android中對這六個部分進(jìn)行了抽象成四個獨立的部分:    Handler,Messa

5、ge,MessageQueue,Looper;·  Message就是消息原型,包含消息描述和數(shù)據(jù),·  MessageQueue就是消息隊列,·  Looper完成消息循環(huán)·  Handler就是駕馭整個消息系統(tǒng)模型,統(tǒng)領(lǐng)Message,MessgeQueue和Looper;    Handler能夠?qū)崿F(xiàn)消息系統(tǒng)模型,那么具體是如何進(jìn)行工作的呢,下面探究一下這其中工作的方法和原理。?三Handler工作原理分析  要了解Handler工作原理,先看一下這個系統(tǒng)模型具體組成的層次結(jié)構(gòu)框架是個什么樣的。?      ?Looper:  實現(xiàn)Thread的消息循環(huán)和消息派發(fā),缺省情況下T

6、hread是沒有這個消息循環(huán)的既沒有Looper;需要主動去創(chuàng)建,然后啟動Looper的消息循環(huán)loop;與外部的交互通過Handler進(jìn)行;MessageQueue:  消息隊列,由Looper所持有,但是消息的添加是通過Handler進(jìn)行;    消息循環(huán)和消息隊列都是屬于Thread,而Handler本身并不具有Looper和MessageQueue;但是消息系統(tǒng)的建立和交互,是Thread將Looper和MessageQueue交給某個Handler維護(hù)建立消息系統(tǒng)模型?! ∷韵⑾到y(tǒng)模型的核心就是Looper。消息循環(huán)和消息隊列都是由Looper建立的,而建立Handle

7、r的關(guān)鍵就是這個Looper。  一個Thread同時可以對應(yīng)多個Handler,一個Handler同時只能屬于一個Thread。Handler屬于哪個Thread取決于Handler在那個Thread中建立?! ≡谝粋€Thread中Looper也是唯一的,一個Thread對應(yīng)一個Looper,建立Handler的Looper來自哪個Thread,Handler屬于哪個Thread?! 」式hread消息系統(tǒng),就是將Thread的Looper交給Han

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。