【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/
之前我们有一篇很好的博文《Android学习笔记(三一):线程:Message和Runnable》对Handler进行了介绍。在此,我们作进一步了解。
前面,我们已经学习到主线程有一个主线程队列,对于异步处理(如Activity的UI触发、触发本地服务的startService(),以及外部进程调用Activity和广播)。异步处理以消息的方式放入主线程队列中,排队依次进行处理。
Handler就是将消息放入队列的机制。我们在哪个线程中创新handler,handler就将消息放入所在的线程,除非在创建handler对象时是指定具体的线程。通常handler在主线程创建,handler可将消息放入主线程队列中。
消息会带有handler参考,这个handler对象将message放入队列,当message被处理时,会通过消息所带的handler参考,触发handler对象中的回调函数进行处理。

通过Handler,Android对外隐藏了队列。处理步骤如下:
1、创建Handler对象和消息对象
2、handler将消息放入队列中,在此过程中消息会记录handler的参考(即对象)
3、当轮到消息处理时,触发消息已记录的handler参考的回调函数
相关链接: 我的Android开发相关文章
【转】 Pro Android学习笔记(八八):了解Handler(2):什么是Handler的更多相关文章
- 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程
		
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...
 - 【转】 Pro Android学习笔记(八十):服务(5):访问远程服务
		
目录(?)[-] Client的AIDL文件 Client的代码 建立连接 请求服务 断开连接 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://bl ...
 - 【转】 Pro Android学习笔记(八九):了解Handler(3):延迟执行小例子
		
目录(?)[-] 小例子 Handler的处理 Activity的代码片段 后台线程和UI的互动 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://b ...
 - 【转】 Pro Android学习笔记(八六):了解Package(5):使用lib
		
目录(?)[-] 在项目中使用lib 源代码 了解一些机制 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowin ...
 - 【转】 Pro Android学习笔记(八四):了解Package(3):包间数据共享
		
目录(?)[-] 共享User ID的设置 共享资源例子 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...
 - 【转】 Pro Android学习笔记(八五):了解Package(4):lib项目
		
目录(?)[-] 什么是lib项目 小例子 Lib的实现 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowing ...
 - 【转】 Pro Android学习笔记(八三):了解Package(2):包签名过程
		
目录(?)[-] 类比例子 数字签名 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在W ...
 - 【转】 Pro Android学习笔记(八七):了解Handler(1):组件和线程
		
目录(?)[-] 主线程消息队列和线程池 查看线程信息 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingf ...
 - 【转】Pro Android学习笔记(八):了解Content Provider(下中)
		
在之前提供了小例子BookProvider,我们回过头看看如何将通过该Content Provider进行数据的读取. (1)增加 private void addBook(String name , ...
 
随机推荐
- JDBC插入性能优化对比
			
今天对Insert进行了性能测试,结果反差很大,平时都是单条插入,虽然性能要求没有那么高,但是突然在项目中,人家给定时间内完成,这就尴尬了. 优化数据库,优化服务器,优化代码,反正通过各种优化提高数据 ...
 - No toolchains found in the NDK toolchains folder for ABI with prefix
			
通过Android Studio 的Sdk Manager安装NDK,安装完之后编译失败,报错信息如下: No toolchains found in the NDK toolchains folde ...
 - angular一些常用的方法:
			
angular.copy(); 用法:对Object对象的深度拷贝$scope.data = {name:'yanjinyun',age:'11'}; $scope.origData = angula ...
 - python基础8 - 变量2
			
1. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变量 和 数据 是分开 ...
 - base64编码的 文件 图片
			
//图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = ne ...
 - combobox默认值为第一个数据,修改为空值
			
以前用combobox的时候默认是空的,可是昨天不知道为什么,默认的居然为第一个数据,实在让人烦恼.百度了很多,有些人说默认本来就是为空的,而有些也和我一样默认是第一个数据. 我想造成这个现象的原因应 ...
 - django model_fields_validators 前端页面编辑自定义验证
			
# model_field_validators.py import re from django.core.exceptions import ValidationError from django ...
 - LeetCode OJ:Integer to Roman(转换整数到罗马字符)
			
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
 - 2017.10.31 Enginer+position+statement
			
一.The basic information Post name Engineering manager Department Engineering Post member A24645 imme ...
 - 【python】python内存管理摘要
			
a = 1 id(a) == id(1) 每次退出ipython重新进入,这个Id都会不一样 sys.getrefcount(a) 可以计数某个对象的引用次数,是原来的次数+1 垃圾回收 使用gc包 ...