当前位置:主页 > 查看内容

重新整理一下Handler原理(温故而知新,可以为师矣)

发布时间:2021-07-19 00:00| 位朋友查看

简介:说Handler之前先把和Handler有关的几个组件也说一下 ? Message handler发送和处理的消息 ? Looper 每个线程只有一个looper是个死循环loop方法负责从MessageQueue 中拿取数据然后把数据交给发送消息的Handler进行处理。 ? MessageQueue 消息队列遵循先进先出……

说Handler之前,先把和Handler有关的几个组件也说一下

?Message:handler发送和处理的消息

?Looper :每个线程只有一个looper,是个死循环,loop方法负责从MessageQueue 中拿取数据,然后把数据交给发送消息的Handler进行处理。

?MessageQueue:消息队列,遵循先进先出的原则。创建looper对象的时候,会在它的构造器中创建一个MessageQueue,用来管理Message。

?Handler :两大作用发送消息和处理消息,Handler将消息发送给指定的MessageQueue,也就是说,想要Handler正常使用,必须在当前线程有MessageQueue,而MessageQueue是通过Looper管理的。也就是说要正常使用Handler必须要有Looper对象,为了保证有Looper基本上分两种方式

?

?主线程中:系统已经初始化了一个Looper对象,所以可以直接创建Handler发送和处理消息就行了。

?子线程中:必须自己创建一个looper对象,启动后,looper会进入死循环不断从MessageQueue中区消息分发给对应的Handler进行处理。

;原文链接:https://blog.csdn.net/wangshuo_/article/details/115768172
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐