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

简介: 尽管前路坎坷,可我们还是继续走了下去,一转眼已经又到了第五篇了,每篇内容较少,所以后面整理完时,会汇总成一篇文章,相信这样做会更具有可读性。

正篇

首先我们继续看代码:

/**
 * Create a new Handler whose posted messages and runnables are not subject to
 * synchronization barriers such as display vsync.
 *
 * <p>Messages sent to an async handler are guaranteed to be ordered with respect to one another,
 * but not necessarily with respect to messages from other Handlers.</p>
 *
 * @see #createAsync(Looper, Callback) to create an async Handler with custom message handling.
 *
 * @param looper the Looper that the new Handler should be bound to
 * @return a new async Handler instance
 */
@NonNull
public static Handler createAsync(@NonNull Looper looper) {
    if (looper == null) throw new NullPointerException("looper must not be null");
    return new Handler(looper, null, true);
}

从方法名可以看出,这是用来创建异步的Handler的方法,方法内容可看出这是这个方法能对Looper线程判空。注释的大意如下:

创建一个新的 Handler,其发布的消息和可运行对象不受同步障碍(例如显示 vsync(垂直同步))的影响。 保证发送到异步处理程序的消息是相对于彼此排序的,但不一定相对于来自其他处理程序的消息。

参数: looper – 新 Handler 应该绑定到的 Looper 回报: 一个新的异步处理程序实例 也可以看看: 使用自定义消息处理创建异步处理程序。

接着我们看下一个方法:

/**
 * Create a new Handler whose posted messages and runnables are not subject to
 * synchronization barriers such as display vsync.
 *
 * <p>Messages sent to an async handler are guaranteed to be ordered with respect to one another,
 * but not necessarily with respect to messages from other Handlers.</p>
 *
 * @see #createAsync(Looper) to create an async Handler without custom message handling.
 *
 * @param looper the Looper that the new Handler should be bound to
 * @return a new async Handler instance
 */
@NonNull
public static Handler createAsync(@NonNull Looper looper, @NonNull Callback callback) {
    if (looper == null) throw new NullPointerException("looper must not be null");
    if (callback == null) throw new NullPointerException("callback must not be null");
    return new Handler(looper, callback, true);
}

注释大意:

创建一个新的 Handler,其发布的消息和可运行对象不受同步障碍(例如显示 vsync)的影响。

保证发送到异步处理程序的消息是相对于彼此排序的,但不一定相对于来自其他Handler的消息。

参数:

looper – 新创建的Handler 应该绑定到的 Looper线程

返回:

一个新的异步处理程序实例 也可以看看: 创建一个没有自定义消息处理的异步处理程序。 (未完待续)

相关文章
|
机器学习/深度学习 运维 算法
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
Machine Learning机器学习之向量机(Support Vector Machine,SVM)
Leetcode 74. Search a 2D Matrix
这道题很简单,为此专门写篇博客其实算博客凑数了。给你一个每一行每一列都是增序,且每一行第一个数都大于上一行末尾数的矩阵,让你判断某个数在这个矩阵中是否存在。 假设矩阵是m*n,扫一遍的时间复杂度就是O(m*n),题目中给出的这么特殊的矩阵,时间复杂度可以降到O(m+n),具体代码如下,写的比较挫。
236 1
|
存储 安全 算法
陪玩系统功能 陪玩平台 陪玩系统用户体验 陪玩系统安全性 陪玩系统开发
陪玩系统旨在为用户寻找合适的陪玩者,提供注册登录、资料展示、搜索匹配、预约支付、实时沟通及评价反馈等功能。平台拥有丰富的陪玩资源,便捷的预约流程,安全的支付环境和良好的用户体验。系统通过优化算法、提升沟通效率、丰富服务内容和建立社区互动来提升用户体验。安全性方面,系统采用数据加密、防火墙、支付安全和实名认证等措施。开发过程包括需求分析、系统设计、前后端开发、测试优化和上线推广。
1183 2
|
API 数据格式
关帝灵签免费API接口教程
接口简介:提供随机获取一枝关帝灵签的服务,共100签。通过POST或GET请求,需提交用户ID和KEY。返回内容包括状态码、消息内容及灵签详情,如序号、吉凶、诗文等。示例请求与响应展示了使用方法和数据格式。
273 5
|
安全 文件存储 Python
【flask入门系列】Flask对象初始化参数以及Flask工程配置的加载方式
上一节我们用flask搭建了helloworld程序,那么这节我们来说一下参数的问题,然后再学习一下Flask工程配置的加载方式。
848 0
【flask入门系列】Flask对象初始化参数以及Flask工程配置的加载方式
|
Go API
【golang】strconv.Atoi 和 strconv.Itoa
【golang】strconv.Atoi 和 strconv.Itoa
576 0
|
前端开发 测试技术
【自动化测试】测试报告
【自动化测试】测试报告
186 0
|
机器学习/深度学习 前端开发 JavaScript
这项技能产品经理不会提,但技术人必须懂! | 开发者必读(110期)
最炫的技术新知、最热门的大咖公开课、最有趣的开发者活动、最实用的工具干货,就在《开发者必读》!
1505 0
|
并行计算 编译器 C语言
自我简历构建记录
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396312 推荐阅读 简历首先应该保证真实,现实存在很多简历造假 首先是基本信息,大家肯定都会写到。
1031 0

热门文章

最新文章