前言

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

  • 下面,将图文详解 Handler机制 的工作原理


目录


1. 定义

一套 Android 消息传递机制


2. 作用

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


3. 为什么要用 Handler消息传递机制

  • 答:多个线程并发更新UI的同时 保证线程安全
  • 具体描述如下

4. 相关概念

关于 Handler机制中的相关概念如下:

为跟源码联系起来,直接使用英文名分析,即 HandlerMessageMessage QueueLooper


5. 工作原理 解析

下面,定性地分析Handler机制的工作流程

5.1 工作流程解析

Handler机制的工作流程主要包括4个步骤:

  1. 异步通信准备
  2. 消息发送
  3. 消息循环
  4. 消息处理

具体如下图:

5.3 示意图

5.4 特别注意

线程(Thread)、循环器(Looper)、处理者(Handler)之间的对应关系如下:

  • 1个线程(Thread)只能绑定 1个循环器(Looper),但可以有多个处理者(Handler)
  • 1个循环器(Looper) 可绑定多个处理者(Handler)
  • 1个处理者(Handler) 只能绑定1个1个循环器(Looper)

至此,关于Handler的异步消息传递机制的工作原理分析完毕。


6. 总结

  • 本文对Handler机制的工作原理进行了全面讲解
  • 最新文章

    1. JavaScript基础语法
    2. node如何让一个端口同时支持https与http
    3. php预定义$_SERVER实例,所有$_SERVER开头的都是预定义服务变量。
    4. 最短JavaScript判断是否为IE6、IE的方法
    5. C++ 从一组数据中按概率选择一个
    6. MTD技术介绍
    7. Git Cmd
    8. 第二十八篇、自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图
    9. CTSC && APIO 总结
    10. java二维码开发
    11. Codeforces 700A As Fast As Possible(二分答案)
    12. nodejs--express开发博客系统(三)
    13. Arachnid包含一个简单的HTML剖析器能够分析包含HTML内容的输入流
    14. Windows 安装Mongoliadb
    15. ListBox数据绑定无效
    16. thinkphp5: 循环输出表格,并固定表格单元宽度(过长省略号)
    17. jsp-9大内置对象简介
    18. CodeChef - ELHIDARR Find an element in hidden array(互动题)题解
    19. (效率低下)77. Combinations C++回溯法 组合
    20. Spring框架的四大原则

    热门文章

    1. 【目录】Identityserver 4 老张的哲学
    2. NOIP后一波总结
    3. ftp搭建记录
    4. Nginx四层负载均衡
    5. java 逻辑运算符
    6. k8s--网络模式
    7. springboot不能用 @SpringApplicationConfiguraction 解决方案
    8. 【leetcode】910. Smallest Range II
    9. 【Shell】ps -ef 和ps aux
    10. php qq第三方登陆