征服面试官:Handler 原理篇 掌握这篇面试题汇总,吊打面试官!

本文详细解析了Android中的Handler实现机制,包括核心类Message、Handler、MessageQueue和Looper的工作原理,以及Handler创建流程。同时,讨论了一个线程中Handler和Looper的数量,如何在子线程中使用Handler,Handler的内存泄露问题及其解决方案,延迟消息的实现方式,以及为何Looper无限循环不会导致ANR。掌握这些知识点,能帮助你在面试中自信应对相关问题。
摘要由CSDN通过智能技术生成

1、Handler 实现机制

Handler 机制有几个核心类:HandlerLooperMessageMessageQueue。Handler 机制是一个典型的生产者消费者模式——多个生产者,一个消费者,该模式是处理线程安全的一个经典模式

  • Message

Message 是 Handler 接收和处理的消息对象,内部使用链表数据结构实现一个消息池,用于重复利用,
避免大量创建消息对象,造成内存浪费。用于在不同线程之间交换数据。

  • Handler

主要用来发送和处理消息。发送消息一般是使用 Handler 的 sendMessage()方法,消息经过处理后,最终传递到 Handler 的 handlerMessage()方法中。

  • MessageQueue

消息队列,它主要用来存放所有通过 Handler 发送的消息,这部分消息会一直存在于消息队列中,等待被处理。注意:每个线程中只会有一个 MessageQueue 对象。

  • Looper

每个线程中 MessageQueue 的管理者,调用 Looper 的 loop()方法后,就会进入到一个无限循环当中,每当发现 MessageQueue 中存在一条消息,就会将其取出传递到 Handler 的 handleMessage()方法当中。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值