您的位置:首页 > 其它

hander消息机制原理

2015-08-09 10:24 183 查看
基本原理

线程中调用Handler.sendMsg()方法(参数是Message对象),将需要Main线程处理的事件 添加到Main线程的MessageQueue中,Main线程通过MainLooper从消息队列中取出Handler发过来的这个消息时,会回调 Handler的handlerMessage()方法。

注意:(UI主要线程中才有Looper)
创建一个Handler时一定要关联一个Looper实例,默认构造方法Handler(),它是关联当前Thread的Looper
在创建一个Handler的时候也可以指定Looper,此时的Looper对象,可以是当前线程的也可以是其它线程的!

多线程中使用,容易造成内存泄漏;也可以用RunOnuiThread()来替代。

ps:MessageQueue是消息队列,先进先出,它的作用是保存有待线程处理的消息。

Handler只是处理它所关联的Looper中的MessageQueue中的Message,至于它哪个线程的Looper,Handler并不是很关心!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: