一、Handler的消息处理机制

  • UI线程:系统在创建UI线程时会初始化一个Looper对象,同时也会创建一个与其关联的MessageQueue;ps:在系统应用程序在不同线程上具有多个视图的情况下,UI线程可能与主线程不同。

  • Handler:发送与处理信息,前提,当前线程

  • Message:Handler接收和处理的消息对象

  • MessageQueue:消息队列,先进先出管理Message,在初始化;ps:栈,先进后出,只能从顶部取数据;队列,先进后出,可以从头部和尾部进行遍历,但是不能同时遍历

  • Looper:每个线程只能够有一个Looper,管理MessageQueue,不断地从中取出Message分发给对应的Handler处理

子线程需要更新UI时,可以新建一个Handler对象,将Message绑定当前Hander对象,自行进入messageQueue,等待Hander分发,当Hander分发开始,由Looper按照先进先出的原则取出,根据message的what属性分发给对应的hander处理

HandlerMessage详解相关推荐

  1. android最全面试题71道题 详解

    Android面试题 1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D ...

  2. 博通wifi驱动详解

    1        WLAN技术 WLAN是英文WirelessLAN的缩写,就是无线局域网的意思.无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活.建网迅速.个人化等特点.将 ...

  3. android最全面 笔试题71道题 详解

    1. 下列哪些语句关于内存回收的说明是正确的? (b ) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在 ...

  4. 全面详解Android实现多线程的几种方式(史上最全,最详细)

    一.前言 Android多线程实现方式包括: 1.基础使用 继承Thread类 实现Runnable接口 Handler 2.复合使用 AsyncTask HandlerThread IntentSe ...

  5. Android 多线程之HandlerThread 完全详解

    转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52426353 出自[zejian的博客] 关联文章: Android ...

  6. Android——Handler详解

    1. 简介 Handler是一套 Android 消息传递机制,主要用于线程间通信. 用最简单的话描述: handler其实就是主线程在起了一个子线程,子线程运行并生成Message,Looper获取 ...

  7. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  8. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  9. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

最新文章

  1. python协程框架_[记录]python的简单协程框架(回调+时间循环+select)
  2. 浙江大学 | 深度域自适应和小目标检测挑战、技术和数据集:调研
  3. Linux-profile、bashrc、bash_profile之间的区别和联系
  4. UNITY2018 真机开启deepprofiling的操作
  5. boost::mp11::mp_replace相关用法的测试程序
  6. 【转】hadoop 报 Name node is in safe mode 错
  7. 快速pow算法c语言_嵌入式必知基础算法(二)
  8. 如何在Java 8中创建线程安全的ConcurrentHashSet?
  9. 【MySQL】外键踩坑集
  10. Python 玩转数据 8 - Pandas Indexing and Slicing
  11. windows pe安装系统
  12. 虚拟摄像头之一: android8.1 移植 v4l2loopback 虚拟摄像头
  13. excel跨多个表格求和_看完财务同事用Excel函数完成的进销存报表,老板惊呆了...
  14. quartz不正常执行.执行一段时间后无故停止
  15. 2032: [蓝桥杯2022初赛] 顺子日期
  16. 如何实现Builder模式
  17. 程序员不得不学的操作系统知识(三)
  18. markdown逻辑符号
  19. 邯郸学院2022程序设计大赛
  20. 【Python】ftfy 包的理解和使用

热门文章

  1. WTL for MFC Programmers,Part IV - Dialogs and Controls
  2. dubbo的调用原理及泛化调用
  3. Kubernetes 资源编排系列之四:CRD+Operator 篇
  4. IP化是智能家居行业的下一个竞争主战场吗?
  5. WPF 控件专题 Image控件详解
  6. Java web session失效时间配置及详解
  7. css两个盒子之间只显示一条边框_css如何去掉重叠部分的边框?
  8. JavaScript阶乘算法
  9. 每日词根——es/ed(吃)
  10. generate-code开源的代码生成器(FlierTeam)