手记

Android-----Handler学习心得

  1. Handler
    a. Handler是android给我们提供的更新UI的一套机制,也是一套消息处理机制,我们可以
    用来发送消息,也可以通过它处理消息。
    b. Activity的生命周期回调底层就是通过handler实现的
    c. Handler的用法:
          i. handler.postRunnable()
         ii. Handler.sendMessage()和handler.handlerMessage()
         iii. Message可以通过arg1和arg2带整形参数,也可以通过obj带一个对象参数
         iv. Handler.removeCallbacks(Runnable runnable)可以从handler中移除一个消息
         v. 通过new Handler(Callback callback)构造函数,通过callback函数的返回值是否为true,
         可以截断handler发送的消息,从而让callback来处理消息,而不会调用到handler对象自身的handleMessage方法如图:

    d. Handler的原理是什么?Handler,Looper,MessageQueue的关系。
        i. Handler:是封装消息的发送,即向消息队列中添加一条消息。

        ii. Looper:内部包含一个消息队列也就是MessageQueue,所有的Handler发送的消息
         都走向这个消息队列。通过Looper.loop死循环不断读取队列中的消息并发送到message
        的target(handler自己)。
        Looper.loop关键代码:

        iii. MessageQueue,就是一个消息队列,可以添加消息并将消息发送回handler自己
        iv. 总结:Handle负责发送消息,Looper负责接收Handler发送的消息,并直接把消息
        回传给handler自己,MessageQueue就是一个存储消息的容器。
        v. 自定义与线程相关的handler
15人推荐
随时随地看视频
慕课网APP