1、Handler 实现机制
Handler 机制有几个核心类:Handler
、Looper
、Message
、MessageQueue
。Handler 机制是一个典型的生产者消费者模式——多个生产者,一个消费者,该模式是处理线程安全的一个经典模式
- Message
Message 是 Handler 接收和处理的消息对象,内部使用链表数据结构实现一个消息池,用于重复利用,
避免大量创建消息对象,造成内存浪费。用于在不同线程之间交换数据。
- Handler
主要用来发送和处理消息。发送消息一般是使用 Handler 的 sendMessage()
方法,消息经过处理后,最终传递到 Handler 的 handlerMessage()
方法中。
- MessageQueue
消息队列,它主要用来存放所有通过 Handler 发送的消息,这部分消息会一直存在于消息队列中,等待被处理。注意:每个线程中只会有一个 MessageQueue 对象。
- Looper
每个线程中 MessageQueue 的管理者,调用 Looper 的 loop()方法后,就会进入到一个无限循环当中,每当发现 MessageQueue 中存在一条消息,就会将其取出传递到 Handler 的 handleMessage()
方法当中。</