美文网首页
Android中的Handler

Android中的Handler

作者: 碎念枫子 | 来源:发表于2023-04-23 23:35 被阅读0次

    Handler是一套Android的消息机制,用于线程中的通讯。

    用最简单的话描述: handler其实就是主线程在起了一个子线程,子线程运行并生成Message,Looper在主线程中轮询MessageQueue并传递给Handler,Handler逐个获取子线程中的Message.

    它主要通过4个组件来来完成

    Looper

    它是一种循环机制,负责在一个线程中不断的轮询MessageQueue,在UI线程外都需要手动创建Looper

    MessageQueue

    它是一个消息列队,用于储存和管理消息,每一个Looper都有一个对应的MessageQueue。

    Handler

    是一个用于发送和处理消息的工具,主要用于不同线程之间传递和处理消息,它可与目标线程绑定,Handler收到消息后会放入与之绑定的Looper的MessageQueue中。

    Message

    一个包含了数据和操作的对象,用于在不同的线程中传递消息。

    注意事项

    通常Handle是用匿名内部类来实现,所以会隐式持有外部类引用,常常会引发内存泄漏,我们可以使用静态内部类和弱引用的方式避免这种情况的发生。

    当MessageQueue中没有消息时,Looper会使线程处于wait的状态

    当MessageQueue中有消息,但是未到达时,Looper处于等待状态,当被唤醒时,则重新检查MessageQueue。

    相关文章

      网友评论

          本文标题:Android中的Handler

          本文链接:https://www.haomeiwen.com/subject/tezyjdtx.html