Activity Handler MessageQueue Looper

Looper:中文意思是作线环的装置,在这里很明显就是循环的装置咯,其实就是一个永动机,不停的从MessageQueue消息队列中取出Message消息,然后传递给Handler,Handler再回调HandleMessage方法去处理,每个线程中只有一个Looper对象。

MessageQueue:从字面意思就可以理解这是一个消息队列。一个线程可以有多个Handler对象,然后多个Handler将消息发送出去,这些消息都保存在一个MessageQueue中,为什么只有一个MessageQueue呢,因为一个线程里只有一个Looper。

Message:消息主体,一个Message对象可以包含很多你想发送的东西。

结合上面的可以得出一个线程只有一个Looper对象,一个Looper对象只有一个MessageQuere对象,一个MessageQueue可以存放很多Message对象。工作流程就是Handler将Message发送到MessageQueu中,然后Looper不断轮询,将消息从队列中取出,又交给Handler处理。

关键代码:
public static void main(String[] args) {
Looper.loop();
throw new RuntimeException("Main thread loop unexpectedly exited");
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容