Handler 使用笔记
来源:互联网 发布:java arrayy.size 编辑:程序博客网 时间:2024/06/18 12:30
Google官方文档介绍:
Handler允许你发送和处理与某个线程相关联的Message和Runnable对象。每一个Handler实例与单个线程以及该线程唯一的MessageQueue相关联。在哪个线程中建立Hander对象,该Handler对象自动会绑定到哪个线程中,并且同时与该线程的MessageQueue和Looper建立起关联关系。从那时起,Handler将会向消息队列MessageQueue传递Message或Runnable对象,并且在他们从消息队列中出来的时候执行它们。
Handler的两个主要用途:
- 安排Message和Runnable在将来的某个时间点运行
- 将action入队以便在一个不同的线程中运行(即能够实现线程之间的通信。比如说当你创建一个子线程后,可以在该子线程中获取父线程中创建的Hander对象,就能通过该对象向父线程的消息队列发送消息了。)
注意事项
- 在子线程(即非UI线程)初始化Handler首先要执行
Looper.prepare();
子线程更新UI实例
步骤:
- 在UI主线程中创建Handler对象
- 构建Runnable对象。在Runnable中编写更新UI的相关代码
- 在子线程的run方法中向UI线程post runnable对象来更新UI
public class MainActivity extends BaseActivity{ private Handler mHandler; private String data; public void onCreate(Bundle savaInstanceState){ mHandler=new Handler(); ...//省略 view.setOnClickListener(view ->{ //开启一个后台线程处理耗时的操作 new Thread(()->{ final DownFiles df=new DownFiles("http:...."); data = df.downLoadFiles(); //在A线程中用B线程的Hander对象发送Message或者Runnable对象 //会在A线程中接受和处理Message或者Runnable对象 handler.post(()->{ view.setText(data)}); }).start(); }); }}
注意:以上代码片段为了看起来更简洁使用了Lambda表达式
阅读全文
0 0
- android笔记-Handler使用
- Handler使用笔记
- Handler 使用笔记
- 【安卓笔记】Handler+Thread使用浅析
- 【学习笔记】之Handler的使用
- Android复习笔记(12) -handler的使用
- Android学习笔记-Handler的使用
- Handler 笔记
- Handler笔记
- Handler笔记
- Handler笔记
- Handler使用
- handler使用
- Handler使用
- Handler使用
- handler使用
- handler 使用
- handler使用
- 名字排序,大小排序
- linux-centos如何配置mongodb
- 转载慕课网对ueditor富文本编辑器的使用
- 标签提交数据的方式
- Ubuntu 16.04 wps 出现缺少libsm.so.6包问题的解决
- Handler 使用笔记
- Appium+python自动化-启动app
- 第四章 需求分析和Model设计
- 最小二乘法 与 均方误差的区别 哈哈哈 相信很多人都没注意到
- TRUNC函数
- C#七大编程原则
- 特殊符号
- Android EventBus异常处理总结
- 踩坑!android端集成微信第三方登录