- 前奏:
在Android开发中,我们常常会使用单独的线程来完成某些操作,比如用一个线程来完成从网络上下载图片
然后显示到一个ImageView中,在多线程操作时,Android必须保证以下两点:
1、不要阻塞UI线程
2、不要在UI线程之外访问Android UI工具包(禁止非UI线程更新UI)
- 使用Handler可以完成以下两点工作
1、消息调度和在将来某个时间点执行一个Runnable
2、多个任务加入到一个队列中执行
-
Handler实现机制:
1、Message对象,表示要传递一个消息
2、MessageQuene,存放消息对象的消息队列,FIFO(先进先出)
3、Looper对象负责管理当前线程的纤细队列 一直在轮询,检查是否有消息,传递handlermessage
4、Handler对象负责把当前消息push到消息队列中,以及接收Looper从消息队列中取出的信息Android启动程序的时候会在UI线程创建一个MessageQueue。