基本原理

线程中调用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并不是很关心!

 

相关文章:

  • 2021-08-20
  • 2022-02-08
  • 2022-01-23
  • 2021-08-08
  • 2021-07-20
  • 2022-02-08
猜你喜欢
  • 2021-07-20
  • 2021-07-19
  • 2021-10-23
  • 2021-09-01
  • 2021-05-16
  • 2022-01-18
相关资源
相似解决方案