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 是 同步的意思。
============
android 消息机制,handler机制,messageQueue,looper的更多相关文章
- android 消息系统Handler、MessageQueue、Looper源代码学习
android消息系统 总体框架如图所看到的 在安卓的消息系统中,每一个线程有一个Looper,Looper中有一个MessageQueue,Handler向这个队列中投递Message,Looper ...
- 深入源代码解析Android中的Handler,Message,MessageQueue,Looper
本文主要是对Handler和消息循环的实现原理进行源代码分析.假设不熟悉Handler能够參见博文< Android中Handler的使用>,里面对Android为何以引入Handler机 ...
- 大话Android中的Handler机制
在Android的线程间通信中,Handler独当一面,无论是framework层还是app层中都出现的相当频繁,有必要好好的拿出来深挖一下它的实现原理.而要说Handler的通信机制,除了Handl ...
- Android中的Handler机制
直接在UI线程中开启子线程来更新TextView显示的内容,运行程序我们会发现,如下错 误:android.view.ViewRoot$CalledFromWrongThreadException: ...
- 5.Android消息推送机制简单例子
1.首先布局文件xml代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout x ...
- Android -- 从源码解析Handle+Looper+MessageQueue机制
1,今天和大家一起从底层看看Handle的工作机制是什么样的,那么在引入之前我们先来了解Handle是用来干什么的 handler通俗一点讲就是用来在各个线程之间发送数据的处理对象.在任何线程中,只要 ...
- Android的Handler机制
Handler机制的原理 Android 的 Handler 机制(也有人叫消息机制)目的是为了跨线程通信,也就是多线程通信.之所以需 要跨线程通信是因为在 Android 中主线程通常只负责 UI ...
- Android Handler 机制总结
写 Handler 原理的文章很多,就不重复写了,写不出啥新花样.这篇文章的主要是对 handler 原理的总结. 1.Android消息机制是什么? Android消息机制 主要指 Handler ...
- Android 消息分发机制
Android 中针对耗时的操作,放在主线程操作,轻者会造成 UI 卡顿,重则会直接无响应,造成 Force Close.同时在 Android 3.0 以后,禁止在主线程进行网络请求. 针对耗时或者 ...
- Android源码分析笔记--Handler机制
#Handler机制# Handler机制实际就是实现一个 异步消息循环处理器 Handler的真正意义: 异步处理 Handler机制的整体表述: 消息处理线程: 在Handler机制中,异步消息处 ...
随机推荐
- JS设计模式——11.适配器模式
适配器模式概述 适配器模式可用来在现有接口和不兼容的类之间进行适配.使用这种模式的对象又叫包装器(wrapper). 适配器特点 从表面看,适配器模式很像门面模式.她们都要对别的对象进行包装并改变其呈 ...
- 关于getsockname()/getpeername()函数第一次被调用得到0.0.0.0结果的说明
最近阅读UNIX网络编程第四章时,书本末尾介绍了两个函数getsockname()和getpeername(),可以用于获取服务器端和客户端的IP地址与端口,原本很简单的两个函数,过一眼即明白函数的用 ...
- Memcache 内存分配策略和性能(使用)状态检查【转】
前言: 一直在使用Memcache,但是对其内部的问题,如它内存是怎么样被使用的,使用一段时间后想看看一些状态怎么样?一直都不清楚,查了又忘记,现在整理出该篇文章,方便自己查阅.本文不涉及安装.操作. ...
- yum怎么用?
一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...
- js对金额浮点数运算精度的处理方案
浮点数产生的原因 浮点数转二进制,会出现无限循环数,计算机又对无限循环小数进行舍入处理 js弱语言的解决方案 方法一: 指定要保留的小数位数(0.1+0.2).toFixed(1) = 0.3;这个方 ...
- ASP .Net Core系统部署到 CentOS7 64 具体方案
.Net Core 部署到 CentOS7 64 位系统中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是 ...
- Java 中 日期 时间 加减
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //方法1(推荐,功能强大灵活多变) Ca ...
- C++之构造函数的继承
#include<iostream> usingnamespace std; classBase1 { public: Base1()=default; Base1(const strin ...
- 查找Mysql慢查询Sql语句
一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_tim ...
- 关于RundownProtect到底是什么东西
RundownProtect这个字段相信只要是读过WRK源码的都会看过这个东西,这个字段在进程和线程的结构中都存在.最典型的例子就是对进程要进行什么操作的时候会先引用这个字段进行加保护,等操作结束后再 ...