从源码与官方文档看之Handler篇(七)

简介: 接下来就是我们可以正常调用的Handler类方法了,希望早日完成Handler类的源码阅读。

前言

网络异常,图片无法展示
|


接下来就是我们可以正常调用的Handler类方法了,希望早日完成Handler类的源码阅读。

正篇

我们继续看源码:

/**
 * Returns a string representing the name of the specified message.
 * The default implementation will either return the class name of the
 * message callback if any, or the hexadecimal representation of the
 * message "what" field.
 *  
 * @param message The message whose name is being queried 
 */
@NonNull
public String getMessageName(@NonNull Message message) {
    if (message.callback != null) {
        return message.callback.getClass().getName();
    }
    return "0x" + Integer.toHexString(message.what);
}

这个方法从名称上可知是用来查询Message对象即消息的名称,注释大意是说此方法返回一个表达特定消息名称的字符串。默认实现将返回消息回调的类名(如果有的话)或者消息“what”字段的十六进制表示。而且用了@nonnull表示该方法不为空。而message参数则是用正被查询名称的消息对象。 接着我们看下一个方法:

/**
 * Returns a new {@link android.os.Message Message} from the global message pool. More efficient than
 * creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this).
 *  If you don't want that facility, just call Message.obtain() instead.
 */
@NonNull
public final Message obtainMessage()
{
    return Message.obtain(this);
}

方法名可知是用来获取消息的,注释解释道:该方法可以返回一个新的Message对象且器是从全局消息池中获取的,比创建和分配新实例更有效。检索到的消息将其处理程序设置为此实例(Message.target == this)。如果您不想要该功能,只需调用 Message.obtain() 即可。

(未完待续)

总结

Handler类的方法阅读正式开始,后面将会更加深入的看这些方法的写法与如何使用,以及它们所出现的原因等,让我们更容易去理解这个Handler类。

相关文章
|
JavaScript 前端开发
js怎么定位不同的页面元素
在JavaScript中,有多种方法定位和选择页面元素。
|
安全 Java 大数据
Spring概述、系统架构及核心概念
Spring概述、系统架构及核心概念
304 0
|
程序员 Shell 开发工具
[oeasy]python029_ until_直接跳转到_unt_breakpoint_断点函数
回顾早期计算机操作员多为女性,她们甚至发明了“bug”这个词。为了体验调试过程,我们故意在Python脚本中引入了一个拼写错误,并通过直接运行程序遇到了`NameError`。 通过`until`命令,我们可以快速跳转到指定行执行,这对于大型项目非常有用。此外,`continue`(或简写`c`)命令则会一直执行到下一个断点或程序结束。我们还可以在代码中使用`breakpoint()`设置断点,配合`continue`命令使用,实现快速跳转至特定位置进行调试。 这些技巧使调试过程变得高效且有趣,如同解开谜题一般。下次我们将探讨如何在调试过程中动态设置与取消断点。
121 0
|
NoSQL 算法 Java
探讨redis分布式锁
探讨redis分布式锁
257 1
|
数据采集 编解码 JSON
使用Python进行网站数据爬取和视频处理
在互联网时代,我们经常需要从网站上获取数据并进行分析或处理。有时候,我们还需要对视频数据进行一些操作,比如剪辑、转码、合成等。Python是一门非常适合做数据分析和视频处理的编程语言,它有很多强大的库和工具可以帮助我们完成这些任务。本文将介绍如何使用Python的requests模块爬取网站数据并进行视频处理的方法和步骤。
535 0
使用Python进行网站数据爬取和视频处理
|
存储 Cloud Native 容灾
再创佳绩!阿里云4篇论文入选顶会FAST 2023
2月21日至23日,计算机体系结构顶会USENIX FAST 2023在美国圣克拉拉召开,阿里云4篇论文被顶会收录,涉及分布式存储架构、云原生存储、用户态存储引擎等多个领域。其中,《Perseus:A Fail-Slow Detection Framework for Cloud Storage Systems》一文还斩获了大会最佳论文奖,这也是中国企业首次获此殊荣。
1373 1
再创佳绩!阿里云4篇论文入选顶会FAST 2023
|
存储 算法 搜索推荐
【C++】 --- STL常用算法总结(二 )
【C++】 --- STL常用算法总结
177 0
|
XML 编译器 Android开发
山川湖海 - Android无障碍功能优化实践
本文主要分享Android无障碍功能的一些优化经验,希望看完本篇,可以帮助到你,以及哪些特殊的用户。
595 0
山川湖海 - Android无障碍功能优化实践
|
弹性计算 运维 监控
SKG 渠道中台借助 SAE + 大禹打造云原生 DevOps,提效 60%
SKG CTO 王焱:以前需要 60 个人干的活,用 SAE 和大禹后 15 个人就可以!
SKG 渠道中台借助 SAE + 大禹打造云原生 DevOps,提效 60%
|
存储 编译器 C++
c++ 有趣的动态转换之 delete 崩溃探究兼谈基类虚析构的重要性
c++ 有趣的动态转换之 delete 崩溃探究兼谈基类虚析构的重要性