日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android线程之异步消息处理机制(二)——Message、Handler、MessageQueue和Looper

發(fā)布時(shí)間:2023/12/20 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android线程之异步消息处理机制(二)——Message、Handler、MessageQueue和Looper 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

異步消息處理機(jī)制解析

?  Android中的異步消息處理主要有四個(gè)部分組成,Message、Handler、MessageQueue和Looper。

1、Message

  Message是在線程之間傳遞的消息,它可以在內(nèi)部攜帶少量的信息,用于在不同線程之間交換數(shù)據(jù)。上個(gè)例子中就使用了Message的what字段,除此之外還可以使用arg1和arg2字段來(lái)攜帶一些整形數(shù)據(jù),使用obj字段攜帶一個(gè)Object對(duì)象。

2、Handler

  Handler顧名思義也就是處理者的意思,它主要是用于發(fā)送和處理消息的。發(fā)送消息一般是使用Handler的sendMessage()方法,而發(fā)出的消息經(jīng)過(guò)一系列地輾轉(zhuǎn)處理后,最終會(huì)傳遞到Handler的handleMessage()方法中。

3、MessageQueue

  MessageQueue是消息隊(duì)列的意思,它主要用于存放所有通過(guò)Handler發(fā)送的消息。這部分消息會(huì)一直存在于消息隊(duì)列中,等待被處理。每個(gè)線程中只會(huì)有一個(gè)MessageQueue對(duì)象。

4、Looper

  Looper是每個(gè)線程中的MessageQueue的管家,調(diào)用Looper的loop()方法后,就會(huì)進(jìn)入到一個(gè)無(wú)限循環(huán)當(dāng)中,然后每當(dāng)發(fā)現(xiàn)MessageQueue中存在一條消息,就會(huì)將它取出,并傳遞到Handler的handleMessage()方法中。每個(gè)線程中也只會(huì)有一個(gè)Looper對(duì)象。

?

  了解了Message、Handler、MessageQueue以及Looper的基本概念后,我們?cè)賮?lái)對(duì)異步消息處理的整個(gè)流程梳理一遍。首先需要在主線程中創(chuàng)建一個(gè)Handler對(duì)象,并重寫(xiě)handleMessage()方法。然后當(dāng)子線程中需要進(jìn)行UI操作時(shí),就創(chuàng)建一個(gè)Message對(duì)象,并通過(guò)Handler將這條消息發(fā)送出去。之后這條消息會(huì)被添加到MessageQueue的隊(duì)列中等待被處理,而Looper則會(huì)一直嘗試從MessageQueue中取出待處理消息,最后分發(fā)回Handler的handleMessage()方法中。由于Handler是在主線程中創(chuàng)建的,所以此時(shí)handleMessage()方法中的代碼也會(huì)在主線程中運(yùn)行,于是我們?cè)谶@里就可以安心的進(jìn)行UI操作了。

?

?

下面這幾個(gè)博客寫(xiě)的也不錯(cuò),推薦下,有空再深入的總結(jié)一下

http://blog.csdn.net/a254373829/article/details/6933027

http://blog.csdn.net/nanzhiwen666/article/details/8292981

http://www.cnblogs.com/shirley-1019/p/3557800.html

http://www.cnblogs.com/net168/p/4082217.html

轉(zhuǎn)載于:https://www.cnblogs.com/longjunhao/p/4234541.html

總結(jié)

以上是生活随笔為你收集整理的Android线程之异步消息处理机制(二)——Message、Handler、MessageQueue和Looper的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。