Android中线程间通信:消息机制
来源:互联网 发布:vlan arp 获得保存mac 编辑:程序博客网 时间:2024/05/17 01:59
消息机制是实现Android中线程间通信的方式,例如当主线程不能执行耗时操作时,会开启子线程来实现,而子线程不能更新UI却需要更新UI时,可以向主线程发出消息,当主线程收到消息后,可以处理消息,当然,处理的方式多半都是对UI控件实现更新!以此实现耗时操作+更新UI的功能!
在消息机制中,会使用到的类有:
Handler:消息的发送者和处理者
Message:消息
消息机制的基本使用
需要思考:
在子线程的哪个位置发出消息?
被发出的消息对象中是否需要封装一些数据?
在主线程如何处理消息?即:如何更新UI?
实现:
调用
Handler
对象的sendMessage(Message msg)
可以发出消息使用
Message
类的无参数的构造方法可以创建消息对象调用
Message
对象的arg1
、arg2
属性可以在消息对象中封装int类型的数据自定义
Handler
类的子类,并重写public void handleMessage(Message msg)
方法可以处理消息,该方法是运行在主线程的,并且参数Message
对象就是此前发出的消息对象
Message
在消息机制中,Message是消息的载体,用于封装相关的数据!
Message类中可用的属性有:
int arg1 -> 用于封装int类型的数据
int arg2 -> 同上
Object obj -> 用于封装任何类型的数据
int what -> 用于使用int类型的常量标识消息的意义
虽然Message类有无参数的构造方法,但是并不推荐使用Message的构造方法创建消息对象,而是应该通过Message类的静态方法static Message obtain()
来获取对象,该方法将尝试从消息中获取消息对象,如果没有可用的消息对象,该方法也会创建新的消息对象!
如果在调用Message的obtain()
方法时,指定了Handler对象作为参数,则应该调用Message对象的void sendToTarget()
方法发送消息!
Message是消息的载体,可以封装消息应该表达的意义和数据
永远不要
new Message()
!而是应该调用Message类的obtain()
系列方法获取对象!
如果在调用
obtain()
系列方法时指定了Handler对象,则应该调用Message对象的void sendToTarget()
方法发送消息!
- Android中线程间通信:消息机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法
- android源码阅读--线程间通信Handler消息机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android的消息机制,用Android线程间通信的Message机制,Android中Handler的使用方法——在子线程中更新界面,handler机制
- Android - 消息机制与线程通信
- Android线程间通信机制
- Android线程间通信机制
- DeepNet深度学习框架的使用
- 比特币真的适合"洗钱"和投机吗?
- 限制对比度自适应直方图均衡化算法(CLAHE)实现
- SQL 十三章QQ数据
- Linux shell脚本,jpg文件批量化转pdf
- Android中线程间通信:消息机制
- JS中的常用事件
- php中json_decode()和json_encode()的使用方法
- 程序员招聘
- Android基础控件——SwipeRefreshLayout最简单的下拉刷新
- 第十三章
- Xcode 下 修改项目横竖屏 (简单实现)
- 源码PHP装php是遇到的问题
- 实现手机app控制威联通QNAP的NAS设备中Aria2启动运行