1. Handler是什么?
Handler主要用于异步消息的处理: 有点类似辅助类,封装了消息投递、消息处理等接口。当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作。
2. 为什么要用handler?
为什么要用handler?不用这种机制行不行?不行!Android在设计的时候,就封装了一套消息的创建、传递、处理机制,如果不遵循这种机制,就没有办法更新UI信息,就会抛出异常信息。
3. handler怎么用?
1)handler.post()
2)handler.postDelayed()
3)handler.sendMessage()
4)handler.sendEmptyMessage()
5)handler.removeCallback(runnable)
4. 补充
Android的UI是线程不安全的,如果想更新应用程序里的UI元素,必须在主线程中进行,否则会出现异常。为了解决此问题,Android提供了一套异步消息处理机制。
Looper.prepare() 给线程创建消息循环
Looper.loop() 使消息循环起作用