欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android开发笔记:Handler、Looper、MessageQueen、Message的关系

程序员文章站 2022-04-12 13:05:49
一、什么是handler? 注:线程分为主线程(主线程又叫UI线程,只能有一个主线程)和子线程(可以有多个)Handler只能在主线程里运行 handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发消息,也可以通过它 处理消息。 1 2 因为android在设 ......

一、什么是handler? 
注:线程分为主线程(主线程又叫ui线程,只能有一个主线程)和子线程(可以有多个)handler只能在主线程里运行 
handler是android给我们提供用来更新ui的一套机制,也是一套消息处理机制,我们可以发消息,也可以通过它 处理消息。

 二、为什么要用handle?
  • 1
  • 2

因为android在设计的时候就封装了一套消息创建、传递、处理。如果不遵循就不能更新ui信息,就会报出异常(所谓的异步消息处理) 
三、 handler的工作原理? 
handler的工作原理是handler发送消息给messagequee给形成handle messagequee再由handle messagequee传递消息给looper(一个对象)最后由looper递交给 handler处理(一个handler里面必须要有一个looper)

handler、looper、messagequeen、message的关系 
message: handler接收和处理的消息对象

messagequeen: 存储消息对象的队列

looper: 负责读取messagequeen中的消息,读到消息之后就把消息交给handler去处理。

handler:发送消息和处理消息

四、什么是message quee 
message quee就是存储消息对象的队列(消息来自于message)

五、handler怎么用 
handler主要有发送消息和处理消息两大作用 
handler发送消息给message而message再由 messagequeen进行消息的存储,接着由looper负责读取 messagequeen中的消息,最后由handler处理消息。

总结: 
looper的作用:每个线程只有一个looper,他负责管理messagequeue,会不断的从messagequeue取出消息,分发给对象 的handler

messagequeue的作用:由looper管理,而messagequeue则采用先进的方法来管理message!

handler的作用:它把消息发送给looper管理的messagequeue,并负责处理looper分发给他的消息。