Android-为什么使用handler,MessageQueue,Looper

77 阅读1分钟

主线程无法进行时间比较繁长的任务,所以需要子线程进行处理,然而子线程无法进行UI的界面更新,所以我们需要使用handler来传递消息给主线程,让其完成UI的更新。由于主线程和子线程进行不同的时间工作,所要需要用MessageQueue来存放子线程的消息,Looper取出消息交给主线程响应。

大致流程如下:

MessageQueue用来保存子线程从Handler所发送未处理的消息,Looper依次取出
MessageQueue中的消息传递给主线程响应处理。

image.png