zoukankan      html  css  js  c++  java
  • 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  是 同步的意思。

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

  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/yue31313/p/7368059.html
Copyright © 2011-2022 走看看