Handler
相信大家对Handler再熟悉不过了,平常使用它的频率也比较高,我们知道它是用来线程间通信的,但是handler是怎么实现通信的,可能就需要我们做进一步的了解,在面试中也是经常会问到的问题,下面我就带着大家跟一跟Handler的源码。
在跟代码之前我们先对Handler原理做个大致打介绍:
Handler:用来发送消息,处理消息
Message:消息实体对象,handler通过sendMsg将实体放到消息队列里面
MessageQueue:存放消息的队列
Looper:消息轮询器,轮询消息队列的消息然后取出,交给handler处理
Handler源码
进入Handler实现,首先看一下代码行数800行,并不多,注释都有100行,所以Handler的代码相对很少,它的主要方法都有:
那么上面打方法我们应该怎么看呢?我们在看源码的时候通常会遇到这个问题,方法那么多,应该从何处看起?不要急,我来交大家一个方法:
首先看代码有多少行,心里大致有个底,然后是构造方法,看看有哪些构造函数,然后浏览一些setter,getter,这些都是一些无关紧要打东西,大致浏览即可,接下来就主要看我们调用的方法,就能找到主线了!
<