面试:Handler的工作原理是怎样的

2024-03-03 01:28:49 浏览

Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四个部分。但我们在日常开发中,经常都只会用到 Handler 和 Message 两个类。Message 负责消息的搭载,里面有个 target 用于标记消息,obj 用于存放内容,Handler 负责消息的分发和处理。

面试Handler的工作原理是怎样的

下面具体给你讲解一下:

Handler机制是由Looper和MessageQueue来构建消息机制的。

MessageQueue:消息队列。虽然名为队列,但事实上它的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表的,其中主要有插入enqueue()和从中拿走并删除next()两个方法。

Looper:消息循环。MessageQueue来存储消息,Looper则是以无限循环的方式去查找是否有新消息,如有就去处理,若没有就standby(等待)。一个线程创建Handler时首先需要创建Looper的,不然报错:RuntimeException: No Looper; Looper.prepare() wasn't called on this thread,而且每个线程下只需要创建一个Looper,不然会报错:RuntimeException: Only one Looper may be created per thread。

面试中回答,建议能自己总结一套自己的专属答案,并理解透,那样当遇到这个问题,就能回答的游刃有余!

失败,因为我是做人事的,以这种经验告认你吧!在面试很多次后,最后哪个面试的人肯定是大人物了,而他的时间肯定很紧,所以,会问下面的人,他们面试的结果感觉怎样,不是特好的话,不会再面试了.所以,可能下面的人员已对你做出了评价

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。