Handler
2015-07-15 21:13
239 查看
Android的UI操作不是线程安全的,这意味着如果有多个线程并发操作UI组件,可能导致线程安全问题。所以,Android只允许UI线程修改Activity里的UI组件。
Android只允许UI线程修改Activity里的UI组件。当一个程序启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件。所以主线程又称为UI线程。
Handler类的作用:
在新启动的线程中发送消息。
在主线程中获取、处理消息:重写回调方法。
Handler通过Looper(每个线程只能有一个Looper)向MessageQueue发送、接受Message。
在线程中使用Handler的步骤:
调用Looper的prepare()方法,为当前线程创建Looper对象
创建Handler子类的实例,重写handMessage()方法,负责处理来自于其他线程的消息。
调用Looper的loop()方法启动Looper。
Android只允许UI线程修改Activity里的UI组件。当一个程序启动时,Android会同时启动一条主线程(Main Thread),主线程主要负责处理与UI相关的事件。所以主线程又称为UI线程。
Handler类的作用:
在新启动的线程中发送消息。
在主线程中获取、处理消息:重写回调方法。
Handler通过Looper(每个线程只能有一个Looper)向MessageQueue发送、接受Message。
在线程中使用Handler的步骤:
调用Looper的prepare()方法,为当前线程创建Looper对象
创建Handler子类的实例,重写handMessage()方法,负责处理来自于其他线程的消息。
调用Looper的loop()方法启动Looper。
相关文章推荐
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- C#线程间不能调用剪切板的解决方法
- C#线程同步的三类情景分析
- C#子线程更新UI控件的方法实例总结
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#多线程处理多个队列数据的方法
- C#实现线程安全的简易日志记录方法
- C#中线程同步对象的方法分析
- ASP.NET线程相关配置
- 浅析linux环境下一个进程最多能有多少个线程
- 再谈JavaScript线程
- C#实现终止正在执行的线程
- 解析Java线程同步锁的选择方法
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- 深入Android线程的相关问题解惑