Handler机制的快速入门

作用

Handler的主要作用是便于用于线程之间的通信或更新主UI线程中的控件
这里涉及到了UI主线程和子线程

在Handler的原理说明之前,我们列出相关的重要的类:

  • Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。
  • Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。
  • MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。
  • Looper:消息泵,不断地从MessageQueue中抽取Message执行。因此,一个MessageQueue需要一个Looper。
  • Thread:线程,负责调度整个消息循环,即消息循环的执行场所。

总结

Handler的实现机制总结称述。

  我们将要处理的事件存储在Message中如果想要将Message传输到Handler中需要调用sendMessage方法进行发送,我们所需要发送的信息都存储在MessageQueue(消息队列)中,MessageQueue如同一个管道将Message按照先进先出的顺序来发送消息,而我们所要发送的信息需要被Looper进行检索将Message取出后检索一遍再放回MessageQueue中才可以将MessageQueue中的消息顺利传递到Handler中,而Handler使用handlerMessage方法进行接受消息。

本博客为博主的一点浅薄理解,如有误解还望多多评论指出,多多交流。

猜你喜欢

转载自blog.csdn.net/jie1175623465/article/details/81125662
今日推荐