hander消息机制原理(looper轮询监听机制)

基本原理多线程

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

 

 

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

多线程中使用,容易形成内存泄漏;也能够用RunOnuiThread()来替代。线程

 

 

 

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

Handler只是处理它所关联的Looper中的MessageQueue中的Message,至于它哪一个线程的Looper,Handler并非很关心!队列

相关文章
相关标签/搜索