第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【學(xué)習(xí)打卡】第13天 Handler 的四大組件和運(yùn)作機(jī)制

標(biāo)簽:
Android

课程名称:BAT大牛亲授技能+技巧 Android面试快速充电升级
课程章节:Android基础相关面试问题
主讲老师:DocMike

课程内容

Handler 的四大组件和运作机制

Android 中处理异步消息的 Handler 解决了线程通信问题,以及线程切换问题,通常包括以下四部分:

  1. Handler,消息的真正处理者, 具备获取消息、发送消息、处理消息、移除消息等功能。
  2. Looper,负责从消息队列中循环的取出消息然后把消息交给 Handler 处理。
  3. MessageQueue,以队列的形式对外提供插入和删除的工作, 其内部结构是以双向链表的形式存储消息的。
  4. Message,代表一个行为what或者一串动作 Runnable , 每一个消息在加入消息队列时,都有明确的目标Handler。

Handler 的运作机制大概经历以下几个过程:

  • 当 Handler 发送消息时,会将此消息加入消息队列 MessageQueue 中。
  • Looper 负责去遍历消息队列并且将队列中的消息分发给对应的 Handler 进行处理。
  • 在 Handler 的 handleMessage() 方法中处理该消息,这就完成了一个消息的发送和处理过程。

对照上面的过程查看 Handler 源码:

  • 在创建 Handler 对象时,有一段异常提示,调用 Looper.prepare()方法来创建Looper对象,来保证Handler发送的消息添加到MessageQueue中。
  • Looper管理消息就是通过prepare()方法中ThreadLocal这个容器来存放Looper对象,通过ThreadLocal这个容器可以确保每一个线程获取的Looper是唯一的。在looper的构造方法中创建looper对象的时候MessageQueue也被创建好了就能保证looper对象中持有MessageQueue对象这样Handler、looper、消息队列三者捆绑。

课程收获

对于 Handler 的理解,不能只停留在使用层面上,还要去了解它的实现原理。这样不仅能在面试时加分,以后在设计自己的框架时,也可以参考它的设计思想。

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
移動(dòng)開發(fā)工程師
手記
粉絲
12
獲贊與收藏
17

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消