1、什么是handler?
注:线程分为主线程(主线程又叫UI线程,只能有一个主线程)和子线程(能够有多个)Handler只能在主线程里运行
handler是Android给咱们提供用来更新UI的一套机制,也是一套消息处理机制,咱们能够发消息,也能够经过它 处理消息。android
2、为何要用Handle?
由于android在设计的时候就封装了一套消息建立、传递、处理。若是不遵循就不能更新UI信息,就会报出异常(所谓的异步消息处理)
3、 Handler的工做原理?
Handler的工做原理是Handler发送消息给MessageQuee给造成Handle MessageQuee再由Handle MessageQuee传递消息给Looper(一个对象)最后由Looper递交给 Handler处理(一个Handler里面必需要有一个Looper)异步
Handler、Looper、MessageQueen、Message的关系
Message: Handler接收和处理的消息对象oop
MessageQueen: 存储消息对象的队列线程
Looper: 负责读取MessageQueen中的消息,读到消息以后就把消息交给Handler去处理。设计
Handler:发送消息和处理消息code
4、什么是Message Quee
Message Quee就是存储消息对象的队列(消息来自于Message)对象
5、Handler怎么用
Handler主要有发送消息和处理消息两大做用
Handler发送消息给Message而Message再由 MessageQueen进行消息的存储,接着由Looper负责读取 MessageQueen中的消息,最后由Handler处理消息。队列
总结:
Looper的做用:每一个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handlerclass
MessageQueue的做用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!原理
Handler的做用:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分发给他的消息。