关于Handle的一些介绍
Handler:是一个消息分发对象,进行发送和处理消息,并且其 Runnable 对象与一个线程的 MessageQueue 关联。
作用:调度消息,将一个任务切换到某个指定的线程中去执行。
Message为Handler接受和处理的消息对象。
MessageQueue为消息队列以先进先出的方式管理Message。
Looper负责读取MessageQueue,读到之后交给发送消息的Handle进行处理。创建时会在构造器中创建MessageQueue对象。
主要是子线程中的程序使用Message夹带数据传输至handler中,完成子线程对主线程的ui更新。
使用方法:
方法一:实现 Runnable 接口,实现 run 方法。创建一个 handler,在 run 方法中进行更新 UI 操作。
// 方法一
new Thread(new Runnable() {@Overridepublic void run() {handler.post(new Runnable() {@Overridepublic void run() {/**更新UI*/}});}}).start();
方法二:sendMessage(Message)
创建一个工作线程,继承 Thread,重新 run 方法
创建一个 Message 对象,设置 what 标志及数据
通过 sendMessage 进行投递消息
创建一个handler,重写 handleMessage 方法,根据 msg.what 信息判断,接收对应的信息,更新 UI。
// 方法二
private Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) { //判断标志位case 1:/**获取数据,更新UI*/break;}}
};public class WorkThread extends Thread {@Overridepublic void run() {super.run();/**耗时操作*///从全局池中返回一个message实例,避免多次创建message(如new Message)Message msg =Message.obtain(); msg.obj = data;msg.what=1; //标志消息的标志handler.sendMessage(msg);}}
通信机制
关于Handle的一些介绍相关推荐
- http参数 libcurl_LibCurl HTTP部分详细介绍
一.LibCurl基本编程框架 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl ...
- VMP学习笔记之Handle块优化与壳模板初始化(四)
参考资料: 本文大量内容抄袭看雪作者:waiWH的VMP系列 1.名称:谈谈vmp的还原(2) 网址:[原创]谈谈vmp的还原(1)-软件逆向-看雪论坛-安全社区|安全招聘|bbs.pediy.com ...
- ssl握手过程和ca证书验证
转载:https://www.cnblogs.com/cposture/p/9029014.html SSL 认证 可以将 SSL 服务器与客户端之间的通信配置为使用单向或双向 SSL 认证. 单向 ...
- DRM驱动(三)之CREATE_DUMB
上节讲到显示处理器会将一块含有图像数据的memory进行处理后送到下一级.后面几节我会根据龙哥的<最简单的DRM应用程序>一步一步分析用户调用的接口在drm驱动中有怎么样的处理. DRM驱 ...
- 抓到Netty一个隐藏很深的内存泄露Bug | 详解Recycler对象池的精妙设计与实现
本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的时候,不小心用我的肉眼抓到了一个隐藏很深很深的内存泄露 Bug. 于是笔者将这个故事-哦不 -事 ...
- android之媒体硬解OMX的实现
android的多媒体部分采用的编解码标准是OMX,当然这个标准是用于硬件编解码的,软件编解码在这里我就不说了. 直接从stagefright的awesomeplayer开始说起吧,如果看过我前面博客 ...
- http参数 libcurl_Http协议之libcurl实现
一.libcurl简介 libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议.libcurl同样支持 ...
- WinCE中串口驱动及接口函数介绍(转载)
作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...
- PHP内核介绍及扩展开发指南—基础知识
一. 基础知识 本章简要介绍一些Zend引擎的内部机制,这些知识和Extensions密切相关,同时也可以帮助我们写出更加高效的PHP代码. 1.1 PHP变量的存储 1.1.1 zval结构 Zen ...
最新文章
- Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务
- oracle增量备份如何恢复,【Oracle】增量备份和全库备份怎么恢复数据库
- NameError: name 'go' is not defined
- mdadm中文man帮助
- 编程语言----00程序员常用网站
- idea迁移到其他电脑,省去重新安装破解及配置
- Mysql多表关联删除操作
- PN结空间电荷区形成原理
- Linux学习之CentOS(三十三)--DNS基础及域名系统架构
- html——attr与val、attr与prop、attr与css区别
- ElasticSearch Group by Multi Field,多字段聚合
- c# 获取路径的盘符_C# IO操作之 如何玩转路径
- WPS删除表格后的空白页
- Javaweb新手软件推荐
- 搭建syslog日志服务器
- LaTeX 文档类型
- Cesium 拾取 API 完全总结
- python对seo有什么用_pythonseo-python对于做SEO主要有什么作用
- POS机刷卡跨行交易的清算方式
- .Net混淆工具和反混淆工具