Android异步消息处理(二)
来源:互联网 发布:linux 修改用户字符集 编辑:程序博客网 时间:2024/06/08 15:45
android异步消息处理之Handler
1.利用Handler更新主线程UI
简单用法如下:
public static final int UPDATE_TEXT = 1;Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case UPDATE_TEXT: mTvSpan.setText("hello!"); break; default: break; } }};@Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.btn_drawerLayout: new Thread(new Runnable() { @Override public void run() { Message message = new Message(); message.what = UPDATE_TEXT; handler.sendMessage(message); } }); break; default:break; }}
2.原理简单说明:
Message:线程之间传递的消息,内部可以携带少量的数据,用于在不同线程之间传递信息;Message中有四个字段是需要注意的,
what:上面示例中使用的; arg1和arg2:携带一些整型数据; obj:携带一个Object对象。
Handler:名为处理者,主要用于发送和处理消息,发送消息一般是使用Handler的sendMessage()方法,而发出去的消息最终会传递到Handler的handleMessage()方法中.
MessageQueue:消息队列,主要用来存放所有从Handler中发送过来的消息,这些消息都是等待被处理的,每个线程中只有一个MessageQueue.
Looper:Looper是每个线程中MessageQueue的管家,调用Looper的Loop方法后就会进入到一个无线循环中,然后每当发现MessageQueue中有消息时,都会取出来,并传递到Handler的handleMessage()方法中。
3.Handler机制原理图:
1 0
- Android异步消息处理(二)
- Android消息队列(二)--异步消息处理
- Android异步消息处理机制(二):源码分析
- Android异步消息处理
- Android异步消息处理
- android 异步消息处理
- Android异步消息处理
- Android异步消息处理
- Android 异步消息处理
- Android异步消息处理(三)
- Android异步消息处理 (Handler)
- Android异步消息处理机制(一)
- Android 异步消息处理机制的妙用(二) Handler 创建强大的图片加载类
- Android异步消息处理机制(二):从源码的角度彻底理解
- Android异步通讯范例(异步消息处理) 一
- (一)Android 异步消息处理
- Android异步消息处理机制
- Android异步消息处理机制
- hibernate一些常见错误
- 快速排序实现
- 构造方法,方法重载——java面向对象
- 理解数据模型
- vector反转reverse
- Android异步消息处理(二)
- 剑指offer-面试题14-调整数组顺序使奇数位于偶数前面
- 258. Add Digits
- cmake错误后的处理办法
- nc 远程控制
- 欢迎使用CSDN-markdown编辑器
- QT 的 串口接收的数据 QByteArray 类怎么得到16进制
- #掉过的坑#cocos:无法打开文件libcurl_img.lib
- Spring常见Bean总结,必需学习的类