Looper和Handler
来源:互联网 发布:网络编程学校 编辑:程序博客网 时间:2024/05/17 17:17
一般情况下,我们启动一个线程,是让它完成一件任务,完成该任务后,线程就退出了。还有一种情况,我们希望该线程一直在运行,我们会时不时的向该线程发送一些消息,线程接收到该消息后,执行相应的操作,执行完成后,线程不退出,等待下一个消息,这很像所谓的“事件触发”。在Android上,使用Looper和Handler很容易实现该功能。
故名思意,Looper就是一个消息循环,而Handler就是一个消息处理器,在非UI线程中,线程默认是不存在消息循环的,因此在创建Handler的时候会抛出异常,在创建Handler对象之前,必须调用Looper.prepare(),然后创建Handler对象,最后启动消息循环:Looper.loop();
跳出消息循环使用:Looper.myLooper().quit();
故名思意,Looper就是一个消息循环,而Handler就是一个消息处理器,在非UI线程中,线程默认是不存在消息循环的,因此在创建Handler的时候会抛出异常,在创建Handler对象之前,必须调用Looper.prepare(),然后创建Handler对象,最后启动消息循环:Looper.loop();
public class LoopThread extends Thread { public interface HandlerCreater { Handler createHandler(); } private Handler mHandler = null; private HandlerCreater mHandlerCreater; LoopThread(HandlerCreater hc) { mHandlerCreater = hc; } @Overwrite public void run() { Looper.prepare(); mHandler = mHandlerCreater.createHandler(); Looper.loop(); mHandler = null; } public void sendMessage(Message msg) { if (null != mHandler) { mHandler.sendMessage(msg); } }}这样,在主线程中只要实现一个HandleCreater,创建出自己合适的Handler,然后就可以启动线程,并向其发消息了。
跳出消息循环使用:Looper.myLooper().quit();
- Looper和Handler
- Looper和Handler
- android looper和handler
- Android Looper和Handler
- Android Looper和Handler
- android handler和looper
- Looper和Handler
- Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- Looper和Handler机制
- Android Looper和Handler
- Android Looper和Handler
- Android Looper和Handler
- python源代码现成重用大全
- servletContext 和 application 的区别
- ARM的股票表现不错 @美东时间:9月1日 07:01:47
- 最常用的设计模式 .
- 王爽汇编第二版实验10(整理)
- Looper和Handler
- android中Logcat的TAG过滤
- 获取当前经纬度方法
- poj2516
- 框架入门1-struts2准备与原理
- Android开发:休眠唤醒或开机后cmwap/cmnet网络不能连接的解决办法
- 学习字节流
- 源代码
- MVC