上一篇的地址为 Android Looper源码解析
一、讲解:
Android中的Handler是用来接受消息,并处理消息中的内容。它可以看成是一个线程的接口,当给它发送消息时,其对应的线程便会处理消息。
Google的介绍为:
A Handler allows you to send and process {@link Message} and Runnable
objects associated with a thread's {@link MessageQueue}. Each Handler
instance is associated with a single thread and that thread's message
queue. When you create a new Handler, it is bound to the thread /
message queue of the thread that is creating it -- from that point on,
it will deliver messages and runnables to that message queue and execute
them as they come out of the message queue.
其简单翻译为:Handler允许你发送一个消息或者Runnable代码块给其关联的线程的消息队列,每个Handler的示例都关联着其线程和线程的消息队列。即当你创建一个新的Handler时,它关联了创建的线程和其线程中的消息队列,之后,它就可以发送一个消息或者Runnable代码块给其关联的消息队列。当消息队列弹出对应消息时,Handler也会执行它
带着问题去看源码是最好的方法,那么我们的问题是:
1、
为什么每个Handler初始话时在哪个线程就是哪个线程的接口?
2、sendMessage如何执行的?