android的消息处理机制(图+源码分析)——Looper,Handler,Message

作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习 google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机 制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。

android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类。下面一一介绍:

线程的魔法师 Looper

Looper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程。所谓Looper线程就是循环工作的线程。在程序开发中(尤其是GUI开发中),我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Looper线程。使用Looper类创建Looper线程很简单:

复制代码

更多相关文章

  1. Android 4.4源码下载与编译
  2. android多线程数据存储 - ThreadLocal的工作原理
  3. java基础---多线程---java内存模型
  4. 反编译APK 得到JAVA代码和资源文件源码
  5. java 使用Callable和Future返回线程执行的结果
  6. Java 容器源码分析之 TreeMap
  7. Java多线程聊天对话框
  8. Android 多线程下载文件原理霸气解析介绍 (完结版)-----greendao
  9. Java多线程六:线程优先级和yield()让步函数

随机推荐

  1. 关于 Golang 协程调度
  2. golang实现二倍均值算法和抢红包的方法
  3. Go语言中如何使用模板引擎
  4. Golang如何实现简单的API网关
  5. 了解Go 扁平化项目结构
  6. Golang中select的实现机制
  7. 用go实现路由的链式定义
  8. Go 1.15 版本的优化清单【总结】
  9. 详解Golang的context
  10. 详解Go 语言中的方法