Hander
Hander的主要作用有两个:
- 延迟处理消息。
- 在其他线程处理消息。
这里的消息可以理解为Message
和Runnable
,通过如下方法来调度消息。
方法 | 作用 |
---|---|
post(Runnable) | 将Runnable对象添加到消息队列 |
postAtTime(java.lang.Runnable, long) | 加入消息队列,在特定时间执行Runnable对象 |
postDelayed(Runnable, Object, long) | 加入消息队列,延迟执行 |
sendEmptyMessage(int) | 仅仅发送what值消息 |
sendMessage(Message) | 将Message对象加入队列 |
sendMessageAtTime(Message, long) | 同理 |
sendMessageDelayed(Message, long) | 同理 |
Runnable
实际上是将该Runnable
匿名对象排入队列,在其他线程执行该消息,这里的其他线程可以理解为MessageQueue
所在的线程。