美文网首页
Activity Handler MessageQueue Lo

Activity Handler MessageQueue Lo

作者: littlenewus | 来源:发表于2018-09-09 10:55 被阅读0次

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");
}

相关文章

网友评论

      本文标题:Activity Handler MessageQueue Lo

      本文链接:https://www.haomeiwen.com/subject/lrtpwftx.html