android 消息机制,handler机制,messageQueue,looper

 韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha

handler  就是 处理器 。  用来处理消息, 发送消息。

handler   就是 处理者 的意思。

消息 是一个 存放数据的 类。 

消息队列,就是一个存放消息的队列。

looper 可以控制 消息队列的 循环读取。

looper 的意思 是 打环的人;打环装置 。

loop 的意思  是 循环 ,环;圈 的意思。  

这里 应该可以理解为 循环器的意思。

首先就是  looper  启动, 创造消息队列,开始循环遍历这个消息队列,

然后   处理器 发送一个消息,  会存放到这个消息队列。

当looper循环读取 消息队列时, 如果读取到这个消息, 会执行 这个消息 对应的  处理器的 处理消息方法。

=====

消息队列  的主要方法为   入队消息enqueueMeassage 和 下一个next  。

排队;入队;队列 的 意思 就是 enqueue

入队消息 方法 是一个单链表的插入操作。

下一个方法  说是一个无限循环, 如果消息队列中没有消息,下一个方法就对阻塞。 有新消息时,下一个方法就会返回这个消息,并将其从链表中删除。

循环器  的 准备方法,就是为 当前没有 循环器的线程 创建循环器。

循环器的 准备 主 循环器 方法 和 获得 主循环器 方法, 就是用于 创建 和 获取  活动 线程的 循环器。

循环器的退出方法 和 安全退出 方法, 前者是 立即退出。  后者是 设置一个标记, 当消息队列 所有消息处理完成之后 退出。

处理器 无论是 它的 发送消息方法 还是 公布post 方法, 最终都是调用的 发送消息在时间   这个方法。

公布 是 post 的意思。

发送消息 其实就是把一个消息 通过 消息队列的 入队消息方法,添加到消息队列。

循环器 收到消息后 会调用 处理器的 分发消息 方法。

当我们直接 处理器 h  = 新建 处理器(),其实是调用的 处理器(返回调用类型  返回调用,布尔类型  异步async) 构造方法。 这个方法里面 会调用循环器的我的循环器方法。

我的循环器方法就是返回 当前线程里的 循环器。 

活动线程 在初始化的时候 创建主线程的 循环器。 所以在活动中 直接 新建 处理器 对象 没有问题。

async的意思 是 异步。    asynchronous

sync  是 同步的意思。

============

原文地址:https://www.cnblogs.com/yue31313/p/7368059.html