Handler机制
来源:互联网 发布:刻录机软件 编辑:程序博客网 时间:2024/06/08 09:36
Handler机制
每个android应用在启动时都会开启一个线程,该线程称为UI线程。正常情况下,所有操作都运行在该线程中。但为了UI更新的流畅,通常将耗时操作放置于其它线程中运行。但android要求所有涉及到UI的操作必须在UI线程中执行。于是在其它线程耗时操作完成时如果需要更新UI,就需要使用线程异步通信,即本文提到的Handler机制。
基本使用
final Handler myHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Log.e("ZXX", msg.arg1 + ""); Log.e("ZXX", msg.arg2 + ""); Log.e("ZXX", (String)msg.obj); //利用message中的值 更新UI } }; new Thread(new Runnable() { @Override public void run() { //耗时操作 Message message = myHandler.obtainMessage(); message.arg1 = 1; message.arg2 = 2; message.obj = "abc"; myHandler.sendMessage(message); } }).start();
handler的基本操作很简单,但其机制还是需要了解一下的。
先是基本概念,一个线程会关联一个消息队列,消息队列要有一个Looper对象来不断的循环取消息,并分给对应的Handler处理。Handler除了负责处理消息外还负责发送消息,并且在发送时将自身设置进Message 消息的target中,当Looper取出消息时便可以根据这个target将消息分发给对应的handler处理。
阅读全文
0 0
- Handler机制
- Handler机制
- handler机制
- handler机制
- Handler机制
- Handler机制
- handler机制
- Handler机制
- handler机制
- Handler机制
- handler机制
- Handler机制
- Handler机制
- Handler机制
- handler机制
- handler机制
- Handler机制
- Handler机制
- 设计模式之工厂模式
- java实现对Excel的读写操作
- MUi下拉刷新和上拉加载click事件失效问题
- 关于C++中的placement new操作符
- PEP8规范
- Handler机制
- 八大排序算法
- 【群论一】以A4为例说明群论中的商群到底有什么用?
- Scrapy+PhantomJS+Selenium动态爬虫
- 最常用的消除浮动的方法
- 前端安装
- Java 面向对象编程概念
- bzoj3172 [Tjoi2013]单词(SA+暴力,类似bzoj2754)
- 股谚:会买是徒弟会卖才是师傅 学会这3种万能卖出法再不用愁