在Android开发的多线程应用场景中,Handler机制十分常用

将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理

下面是网上找到Handler流程图

 

一:基础知识Android多线程(二)Handler源码分析

 

 

 

二:主要流程

Handler,loop轮询检测发送消息到MessageQueue入列,Handler回调方法处理消息,重写handMessage方法刷新ui

 

1.ActivityThread类 main()开始创建主线程,创建Looper,MessagerQuery

 

2.创建Handler对象 启动子线程,消息发送到消息队列中,然后循环读取消息

3.接受消息更新到ui上。

Android多线程(二)Handler源码分析

三:核心方法

 

Android多线程(二)Handler源码分析

四,初始化准备 创建  Looper   创建 MessageQueue

 

ActivityThread类 main()开始创建主线程

Android多线程(二)Handler源码分析

2,创建Looper

Android多线程(二)Handler源码分析

Android多线程(二)Handler源码分析

3,创建MessagerQuery

Android多线程(二)Handler源码分析

在app启动环节,创建主线程时,会自动调用ActivityThread的1个静态的main();而main()内则会调用Looper.prepareMainLooper()为主线程生成1个Looper对象,同时也会生成其对应的MessageQueue对象

---------------------------------------------------------------------------------------------------------------

五, 初始化准备消息循环

Android多线程(二)Handler源码分析

Android多线程(二)Handler源码分析

六:创建消息对象 Message

Android多线程(二)Handler源码分析

Android多线程(二)Handler源码分析

 

七:在工作线程中 发送消息到消息队列中

Android多线程(二)Handler源码分析

Android多线程(二)Handler源码分析

Android多线程(二)Handler源码分析

 

Android多线程(二)Handler源码分析

 

 

Android多线程(二)Handler源码分析

 

相关文章: