Handler介绍

166 阅读1分钟
  • 前奏: 在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。