Android 面试(五),kotlin扩展函数原理

本文探讨了Android中的Handler机制,包括Handler、Message、MessageQueue和Looper的角色。强调了在使用Handler时需要注意的事项,如在一个线程中只调用一次Looper.prepare()和Looper.loop(),以及如何避免因Handler引起的内存泄漏,建议使用静态内部类和WeakReference。同时提到了HandlerThread的作用,即提供了一个内置Looper的线程。
摘要由CSDN通过智能技术生成
  • Handler
  • Activity.runOnUiThread()
  • View.post(Runnable r)

讲讲 Handler 机制吧

Handler 主要由以下部分组成。

  • Handler
    Handler 是一个消息辅助类,主要负责向消息池发送各种消息事件Handler.sendMessage() 和处理相应的消息事件Handler.handleMessage()

  • Message
    Message 即消息,它能容纳任意数据,相当于一个信息载体。

  • MessageQueue
    MessageQueue 如其名,消息队列。它按时序将消息插入队列,最小的时间戳将被优先处理。

  • Looper
    Looper 负责从消息队列读取消息,然后分发给对应的 Handler 进行处理。它是一个死循环,不断地调用 MessageQueue.next() 去读取消息,在没有消息分发的时候会变成阻塞状态,在有消息可用时继续轮询。

在 Android 开发中使用 Handler 有什么需要注意的

首先自然是在工作线程中创建自己的消息队列必须要调用 Looper.prepare(),并且在一个线程中只能调用一次。当然,仅仅创建了 Looper 还不行,还必须使用 Looper.loop(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值