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

简介: 今天继续看Handler类,构造方法已经基本全部看完,后面应该是一些类的一般方法之类的内容了,继续加油。

正文

首先,我们可以看到官方又提供了三个注释为hide(隐藏)的方法:

/** @hide */
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
@NonNull
public static Handler getMain() {
    if (MAIN_THREAD_HANDLER == null) {
        MAIN_THREAD_HANDLER = new Handler(Looper.getMainLooper());
    }
    return MAIN_THREAD_HANDLER;
}
/** @hide */
@NonNull
public static Handler mainIfNull(@Nullable Handler handler) {
    return handler == null ? getMain() : handler;
}
/** {@hide} */
@NonNull
public String getTraceName(@NonNull Message message) {
    if (message.callback instanceof TraceNameSupplier) {
        return ((TraceNameSupplier) message.callback).getTraceName();
    }
    final StringBuilder sb = new StringBuilder();
    sb.append(getClass().getName()).append(": ");
    if (message.callback != null) {
        sb.append(message.callback.getClass().getName());
    } else {
        sb.append("#").append(message.what);
    }
    return sb.toString();
}

这最让我注意的就是这个hide的注释,查询了一些相关资料,它们解释:类或API是否开放,是通过doc的注释{@hide}来控制的。这表示不对外公开api,但是系统内部是可以使用该注释标记的接口的。加入了 /** {@hide} */ 注视后的类或者API是google编译时不对外开放的,但是运行的时候这写类和API都是可以访问的。

所以这三个方法应该是类自己使用的,我们不去调用它们。从方法名与方法内部内容也大致可以判断出它们应该是一些关于Handler创建时相关的操作与判断方法,第一个可以返回MAIN_THREAD_HANDLER即主线程Handler,第二个是对Handler对象的null判断后的安全返回,当Handler对象为null是获取getMain(),而不为空则返回自身,第三个方法则内容多一些,从方法名大意是获取跟踪(消息)名,可以返回Message对象的跟踪名。

总结

今天主要还是在构建Handler类的源码位置,没有涉及到我们可以直接调用的方法,下一次也要迈入常用或者重要的方法源码了,未完待续。。。

相关文章
高频小信号谐振放大器设计-课程设计Multisim仿真
高频小信号谐振放大器设计-课程设计Multisim仿真
高频小信号谐振放大器设计-课程设计Multisim仿真
|
存储 JavaScript 前端开发
matplotlib绘图技巧详解(二)(一)
matplotlib绘图技巧详解(二)(一)
matplotlib绘图技巧详解(二)(一)
|
1天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1088 0
|
10天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3617 3
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
22天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13352 91
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了