关于Handler消息传递机制的认识
来源:互联网 发布:看乐视电视网络直播 编辑:程序博客网 时间:2024/05/18 01:33
1.Handler是用来更新UI界面和处理主线程和子线程之间的通信的
2.为什么android系统要采用只能通过handler机制更新UI呢?
这种设计的根本原因是来解决多线程并发更新UI而导致界面更新混乱的问题的,
而如果每个子线程想要更新UI而加锁的话,就会使程序运行的性能变低,所以采用handler机制
3.handler的原理
handler负责发送消息,Looper负责接收Handler发送的消息,并将消息回传给handler自己
MessageQueue就是负责存储handler发送的消息的一个容器
通俗的讲:
1.handler就是消息处理器,负责处理消息的
2.Message消息,包含消息Id,被处理的对象
3.MessageQueue消息队列,用来存放Handler发送过来的消息
4.Looper消息泵,不断的从消息队列中抽取消息
MessageQueue就像一个水塘里面存储着消息,而Message就是水塘里的水,Looper就像是水泵
不断的从水塘里抽取水,而handler就像操作的工人
4.(1)子线程中创建handler对象之前要调用Lopper.prepare()方法,而且要调用
Looper.loop()方法来启动消息的轮询,然后才会接收到子线程发送的消息.
(2)而在UI线程中创建handler对象则不需要去创建looper对象,因为主线程已经创建好了
在主线程中创建的handler对象重写的hanleMessage()方法中不能执行耗时性操作,因为它是
运行在主线程中的
5.android更新UI的四种方式
(1).handler.sendMessage();
(2).handler.post();
(3).runOnUiThread();
(4).view.post();
6.在子线程中某些情况下其实是可以更新UI的,但是出于线程安全方面的考虑,一律在主线程中
更新UI
7.使用handler过程中的两种异常
(1).在子线程中不能更新UI的异常
(2).在子线程中创建handler对象而没有调用Lopper.prepare()方法
0 0
- 关于Handler消息传递机制的认识
- Handler消息传递机制
- Handler 消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler 消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler 消息传递机制
- Handler 消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- Handler消息传递机制
- 第12周OJ实践 递归求解立方累加和
- java中stringBuilder的用法
- Services服务
- poj 3321 dfs+树状数组
- 硬盘坏了
- 关于Handler消息传递机制的认识
- 模拟i2c实现流程
- mac前端开发环境搭建
- 多机的跨库数据库Join查询
- 勾股定理一日一证连载169
- java中获取当前操作系统的信息
- kinect 2.0:利用深度进行前景分割(c++实现)
- GDAL学习笔记——OGRLayer C++ API
- hiveserver2 CDH5.7.1