国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

安卓Handler機制

2019-11-09 14:26:17
字體:
來源:轉載
供稿:網友

從handler.sendMessage()作為入口來分析:

1、Handler的sendMessage -> sendMessageDelay -> sendMessageAtTime;

2、可以看到最后調用sendMessageAtTime的方法,它的作用就是把Message.target = this 讓Message先持有Handler對象,然后傳給MessageQueue.enqueueMessage

3、enqueueMessage方法通過比較把Message加入到mMessage鏈表里面,這時候Message.when持有執行的時間,Message.next持有下一個消息

4、通過MessageQueue的注解可以看到Looper調用了它

5、Looper通過PRepare方法把自身傳遞個ThreadLocal對象,這個對象給維護Looper和線程的對應管線。(當前app的線程和looper映射關系都由ThreadLocal維護)

6、Looper調用loop方法,看到一個Looper持有一個MessageQueue對象,然后取出mMssage執行:

7、Message.target持有的handler對象再調用dispatchMessage傳給handleMessage或者handleCallback回調接口實現功能

源碼中Handler,MessageQueue,Looper,ThreadLocal類的注解,非常說明其作用;


上一篇:SystemServer分析

下一篇:git config

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍林郭勒市| 凤阳县| 广东省| 宝清县| 日照市| 洛阳市| 金沙县| 富源县| 盖州市| 睢宁县| 祁阳县| 盖州市| 抚宁县| 彰化市| 顺义区| 漠河县| 遵化市| 信宜市| 禄丰县| 台江县| 荣成市| 衡山县| 内丘县| 襄汾县| 天门市| 东光县| 太谷县| 绩溪县| 甘肃省| 大同县| 赞皇县| 苏尼特右旗| 云和县| 榕江县| 德安县| 怀来县| 福建省| 郑州市| 东兰县| 额敏县| 大同市|