Android在Java标准线程模型的基础上,提供了消息驱动机制,用于多线程之间的通信。基于消息驱动机制的线程通信模型称为称为线程消息通信。在标准线程模型中,可以首先在线程内部创建一个消息队列,然后让线程进入一个无限循环中,在这个无限循环中,线程会不断检查消息队列中是否有消息。如果需要线程执行某个任务,便向线程的消息队列中发送对应的该任务的消息,线程在无限循环中检查到消息队列中有消息到来,便会获取该消息,进而执行该消息对应的处理流程。如果线程的消息队列中没有消息,线程便进入等待状态,等待消息的到来。这样便可以通过消息控制线程的执行,因此也称为消息驱动机制。
消息驱动机制涉及的4个概念:消息、消息队列、消息循环、消息处理器。
消息用于表示一个可执行任务,通常在消息内部会封装消息的标志、消息的执行时间以及消息数据。消息创建完毕后,通过消息处理器将其发送到象策划过的消息队列中,消息队列维护当前可执行消息的列表。当前线程进入消息循环中遍历消息队列获取消息,然后根据消息标志通知消息处理器执行对应的处理函数。
Looper线程: