说Handler之前,先把和Handler有关的几个组件也说一下

Message:handler发送和处理的消息

Looper :每个线程只有一个looper,是个死循环,loop方法负责从MessageQueue 中拿取数据,然后把数据交给发送消息的Handler进行处理。

MessageQueue:消息队列,遵循先进先出的原则。创建looper对象的时候,会在它的构造器中创建一个MessageQueue,用来管理Message。

Handler :两大作用发送消息和处理消息,Handler将消息发送给指定的MessageQueue,也就是说,想要Handler正常使用,必须在当前线程有MessageQueue,而MessageQueue是通过Looper管理的。也就是说要正常使用Handler必须要有Looper对象,为了保证有Looper基本上分两种方式

主线程中:系统已经初始化了一个Looper对象,所以可以直接创建Handler发送和处理消息就行了。

子线程中:必须自己创建一个looper对象,启动后,looper会进入死循环不断从MessageQueue中区消息分发给对应的Handler进行处理。

重新整理一下Handler原理(温故而知新,可以为师矣)相关推荐

  1. 【Android 异步操作】Handler ( 主线程中的 Handler 与 Looper | Handler 原理简介 )

    文章目录 一.主线程中的 Handler 与 Looper 二.Handler 原理简介 一.主线程中的 Handler 与 Looper Android 系统中 , 点击图标启动一个应用进程 , 就 ...

  2. Android Handler原理

    前言 Handler消息处理机制在Android开发中起着举足轻重的作用,我们有必要好好理解下其原理,先前我写的一篇文章,感觉疏漏了好多东西,因此打算写这篇文章,下面我们先从一个简单的例子出发 一.日 ...

  3. android 实例源码解释,Android Handler 原理分析及实例代码

    Android Handler 原理分析 Handler一个让无数android开发者头疼的东西,希望我今天这边文章能为您彻底根治这个问题 今天就为大家详细剖析下Handler的原理 Handler使 ...

  4. Handler原理学习

    前言 Handler可以说是老生常谈了,因为它在整个Android的系统中是非常重要的一部分,学习它的原理是很有必要的.本文带来的分享是对Handler原理的全面解析,相信对日常的开发和面试会有很大的 ...

  5. Handler原理剖析,看这篇就够了

    Handler原理剖析,看这篇就够了 本篇文章将会对Handler进行深层次的剖析,结合关系剖析图.代码走向剖析图以及10个常见问题,希望看完文章的同学都能有所收获,加深对Handler的了解! 一. ...

  6. Handler原理分析

    Handler的原理分析这个标题,很多文章都写过,最近认真将源码逐行一字一句研究,特此也简单总结一遍. 首先是Handler整个Android消息机制的简单概括: 分三部分对消息机制的整个流程进行阐述 ...

  7. Handler原理剖析

    Handler是Android中的核心类,它的作用主要是进行更新UI的操作,使用非常的简单,因为它的内部已经被Google工程师封装好了,我们只需要简单的调用即可.但是作为一个有梦想的程序猿,不应该止 ...

  8. Handler原理讲解及源码分析

    不用多说先上一张图 一,发送消息 首先我们每次会创建一个Handler会调用源码 如果looper对象为空的话会执行Looper.prepare()将一个新的Looper放入ThreadLocal中. ...

  9. Handler原理(自己实现Handler)

    问题导向 Handler的原理是什么,实现一个Handler,Handler的delay是怎么实现的 实现一个Handler 自己动手撸一个Handler https://blog.csdn.net/ ...

  10. 【基础知识思考整理 】Zero-copy原理理解(用户角度)

    基础知识思考整理 http://blog.csdn.net/aganlengzi/article/details/53332877 关于Zero-Copy的原理.主要参照的是一篇03年的文章[1](L ...

最新文章

  1. linux系统主要常见目录结构
  2. mysql 生明变量_MySql中的变量定义
  3. 返回index.html页面
  4. php中会话技术,php session会话技术详解
  5. 越狱Season 1-Episode 15: By the Skin and the Teeth
  6. 项目中的设计模式【工厂方法模式】
  7. 让Xcode日志输出中文
  8. java POI导出excel性能优化
  9. C语言来实现链表创建
  10. 编程还是不要用百度翻译,这里有一款更符合编程的翻译工具
  11. python中使用splash如何挂代理?
  12. Contiki学习笔记——Cooja启动失败
  13. 一个操作系统的实现:BOOT
  14. 《计算机网络管理》 期末考试
  15. kuka机器人报电源管理报错_KUKA机器人故障信息与故障处理_中文版.pdf
  16. 化工企业安全生产管理监控预警系统软件
  17. 计算机属性的Java代码_java - 学计算机的人绝不认输 - 博客园
  18. 面试06,[长亮科技]()(offer)、[荔枝]()FM(在确定部门和薪资)、[涂鸦智能]()(第一轮电话面半小时,待后续)、华资软件(HR面)、[广州速游]()(已挂)。至于公司怎么样不加以言论。
  19. DNSPOD动态域名解析
  20. 计算机主板上安装有芯片组,解决方案:计算机主板上安装了哪些硬件设备?

热门文章

  1. (附源码)Springboot酒店会员点餐系统 毕业设计 072005
  2. OpenWRT/Linux多WAN带宽叠加使用iptables标记策略路由负载均衡
  3. 12306火车票余票自动查询 Python selenium
  4. win7利用映射网络驱动器功能管理网站FTP空间
  5. 攻防世界backup
  6. linux系统浏览器没有图片不显示,网页不显示图片怎么回事【解决方法】
  7. 四级词汇——不择手段记单词new
  8. 简单好用又免费的百度翻译mac桌面端
  9. 查询oracle job命令,oracle命令之job详解
  10. 钉钉日志范文100篇_钉钉日志,让领导看得见你的工作