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

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

ID:62023464

大?。?25.00 KB

頁數(shù):18頁

時(shí)間:2021-04-14

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

《Android中消息系統(tǒng)模型和Handler Looper.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

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

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

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

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

5、六個(gè)部分進(jìn)行了抽象成四個(gè)獨(dú)立的部分:   Handler,Message,MessageQueue,Looper;·Message就是消息原型,包含消息描述和數(shù)據(jù),·MessageQueue就是消息隊(duì)列,·Looper完成消息循環(huán)·Handler就是駕馭整個(gè)消息系統(tǒng)模型,統(tǒng)領(lǐng)Message,MessgeQueue和Looper;  Handler能夠?qū)崿F(xiàn)消息系統(tǒng)模型,那么具體是如何進(jìn)行工作的呢,下面探究一下這其中工作的方法和原理。一、Handler工作原理分析高考  要了解Handler工作原理,先看一下這個(gè)系統(tǒng)模型具體組成的層次結(jié)構(gòu)框架是個(gè)什么

6、樣的?!     ooper:  實(shí)現(xiàn)Thread的消息循環(huán)和消息派發(fā),缺省情況下Thread是沒有這個(gè)消息循環(huán)的既沒有Looper;需要主動(dòng)去創(chuàng)建,然后啟動(dòng)Looper的消息循環(huán)loop;與外部的交互通過Handler進(jìn)行;MessageQueue:  消息隊(duì)列,由Looper所持有,但是消息的添加是通過Handler進(jìn)行;  消息循環(huán)和消息隊(duì)列都是屬于Thread,而Handler本身并不具有Looper和MessageQueue;但是消息系統(tǒng)的建立和交互,是Thread將Looper和MessageQueue交給某個(gè)Handler維護(hù)建立

7、消息系統(tǒng)模型。高考 所以消息系統(tǒng)模型的核心就是Looper。消息循環(huán)和消息隊(duì)列都是由Looper建立的,而建立Handler的關(guān)鍵就是這個(gè)Looper?! ∫粋€(gè)Thread同時(shí)可以對(duì)應(yīng)多個(gè)Handler,一個(gè)Handler同時(shí)只能屬于一個(gè)Thread。Handler屬于哪個(gè)Thread取決于Handler在那個(gè)Thread中建立?! ≡谝粋€(gè)Thread中Looper也是唯一的,一個(gè)Thread對(duì)應(yīng)一個(gè)Looper,建立Handler的Looper來自哪個(gè)Thread,Handler屬于哪個(gè)Thread。故建立Thread消息系統(tǒng),就是將Threa

8、d的Looper交給Handler去打理,實(shí)現(xiàn)消息系統(tǒng)模型,完成消息的異步處理。Handler與Thread及Looper的關(guān)系可以用下

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

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

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