【Android自助餐】Handler消息机制完全解析(四)Looper解析

本文详细解析了Android中的Looper类,包括初始化过程、提供获取Looper的接口以及处理消息队列的机制。初始化主要涉及Looper.prepare()和Looper.loop(),其中prepare()方法将Looper实例绑定到当前线程,而loop()方法则进入无限循环,从消息队列中取出并分发消息。此外,还讨论了Looper与MessageQueue的交互以及在应用主线程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android自助餐Handler消息机制完全解析(四)Looper解析

Looper

如果你搞过Arduino,那么你肯定知道这个loop()方法。没接触过也没关系,这个方法就是一个通过死循环来重复做某件事的方法。区别是Arduion的循环控制在loop()方法外,而Looper的循环控制在loop()方法内。这个Looper类本身则是对这个方法做了一些封装。

初始化prepare()

这里标题不是构造方法,因为其构造方法被private修饰,那么来看看它什么时候调用了构造方法。很容易就能找到private static void prepare(boolean quitAllowed)方法,该类仅在这里调用了构造方法,然而这个prepare()也是被private修饰的,那么来看看这个带参的prepare()又在哪里被调用了。结果可以找到两个public static修饰的方法:prepare()prepareMainLooper()
第一个方法原文说明如下:

Initialize the current thread as a looper.This gives you a chance to create handlers that then reference this looper, before actually starting the loop. Be sure to call loop() after calling this method, and end it by calling quit().

某以不才为诸君翻译如下:

作为looper初始化当前线程。提供一个机会来创建handler并使用looper。在使用之前,请在此方法之后调用loop(),并在结束时调用quit()

第二个方法原文说明如下:

Initialize the current thread as a looper, mark

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值