hander机制原理
Hander机制:
Hander机制,是我们在编程过程中,与应用程序之间进行交互用到最多的机制,当我们对应用程序进行UI操作的时候,我们不能在子线程(非UI线程)中直接对ui进行操作,这时候我们就需要用到handler,handler的原理是一个发送消息,处理消息的过程。
Android Handler机制 :每一个消息都需要被指定的Handler处理,通过Handler创建消息便可以完成此功能。Handler创建消息时首先查询消息池中是否有消息存在,如果有直接从消息池中取得,如果没有则重新初始化一个消息实例。使用消息池的好处是:消息不被使用时,并不作为垃圾回收,而是放入消息池,可供下次Handler创建消息时使用。消息池提高了消息对象的复用,减少系统垃圾回收的次数。
一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理 ,但是每个线程中最多只有一个Looper,肯定也就一个MessageQuque。
Handler的具体用法有两种:
a、1、在UI线程中创建handler
2、把UI线程中创建好的handler的内存地址引用传递给子线程
3、在子线程中的run方法中,进行handler消息池中消息的获取。
4、封装消息内容
5、通过handler发送该消息。
6、在handler中接收该消息,进行消息处理。
(PS:以上所有的handler,指的都是UI线程中创建的handler)
b、1、在UI线程中获取Looper
2、把UI线程中获取的Looper传递给子线程
3、在子线程的run方法中通过looper的传递实例化handler
(该handler即为处理UI控件的handler)
4、直接复写该handler的handleMessage方法,完成UI更新。
hander机制原理相关推荐
- Android:从源码剖析Hander机制
引言 Hander机制是安卓开发中一个重要的消息机制,也是面试的常客.本篇文章是结合书籍和源码,进行一个梳理总结,方便大家更好的理解Hander机制. Hander的两种用法及使用场景 这里介绍两种最 ...
- 2021年大数据Kafka(九):kafka消息存储及查询机制原理
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 kafka消息存储及查询机制原理 一.Kafka数据存储机制 ...
- 【阿里云课程】注意力机制原理,应用与设计
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第10课中的一节,介绍如下: 注意力机制原理与设计 本次课程是阿里天池联合有三AI推出的深度学习系列课程第10期,深度学习模 ...
- python类加载机制_PHP面向对象自动加载机制原理与用法分析
本文实例讲述了PHP面向对象自动加载机制原理与用法.分享给大家供大家参考,具体如下: 在学习PHP的面向对象的时候,会知道很多"语法糖",也就是魔术方法.有一个加自动加载的魔术方法 ...
- Kafka设计解析(八)- Exactly Once语义与事务机制原理
本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/transaction/ 写在前面的话 本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版 ...
- Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结 1. 微内核与插件的优点1 2. 插件的注册与使用2 2.1. Ioc容器中注册插件2 2.2. 启动器微内核启动3 ...
- Spark之Master主备切换机制原理
Spark之Master主备切换机制原理
- Attention注意力机制–原理与应用
Attention注意力机制–原理与应用 注意力机制即Attention mechanism在序列学习任务上具有巨大的提升作用,在编解码器框架内,通过在编码段加入A模型,对源数据序列进行数据加权变换, ...
- TADF材料的机制原理;TADF的机理;热活化延迟荧光如何产生?
TADF材料的机制原理:TADF的机理:热活化延迟荧光如何产生? TADF的机理 TADF材料的机制原理 TADF是激子从S1态开始的特殊的辐射跃迁[28-29],如图1.9 所示,单线态激子可以通过 ...
最新文章
- SAP QM 激活01检验类型的前提下无Vendor CoA则不允许收货过账
- 计算机基础知识关于进制,计算机基础知识-- 进制和编码
- 【Python基础避坑】函数内存底层分析,全局变量/局部变量,参数传递,浅拷贝/深拷贝
- mysql 开发进阶篇系列 41 mysql日志之慢查询日志
- Python3 标准库及相关内容
- OpenCV中绘制外围矩形框和圆框
- crc16几种标准校验算法及c语言代码
- 用vim写php,Vim/Neovim中配置PHP的代码调试
- carve into_最新carve的用法和短语例句
- 综合评价方法之秩和比法(RSR)
- matlab位图矢量化,位图矢量化的处理算法研究
- 开关电源基础知识(上)_拓扑类型、效率与输入输出及占空比的关系
- [iOS 逆向 2] 越狱介绍
- 从命令行安装Deb文件的5种方法
- 开发集成云信IM小程序聊天室流程
- 程序员所使用的各种软件分享及破解
- nacos registry, gateway register failed java.lang.IllegalArgumentException: no server available
- 2.Nacos 服务注册的原理
- 2020年计算机网络管理员赛项竞赛试题(5)
- 西门子水处理1200PLC程序+触摸屏程序