Handler源码翻译
顶部翻译: /*** 一个 Handler 允许你send和处理 Message 和 Runnable与线程的 MessageQueue 关联的对象。* 每个处理程序实例与单个线程和该线程的消息相关联队列。* 当您创建一个新的Handler时,它会绑定到一个 Looper上。* 它将消息和可执行任务传递给 Looper 的消息队列并在 Looper 的线程上并执行它们。** Handler 有两个主要用途:* (1)安排消息和可执行任务在未来的某个时间点执行;* (2) post和send消息要在不同的线程上执行。** 发送消息是通过* post, postAtTime(Runnable, long), postDelayed,sendEmptyMessage,* sendMessage、sendMessageAtTime 和 sendMessageDelayed 这些方法。** Handler允许你将 Runnable 对象放入队列;* Handler允许你放入一个 Message 对象,其中包含一组数据,* 这些数据将被 handleMessage 这个方法接收。** 当 send 或 post 到 Handler 时,你可以在消息队列上马上接受处理,也可以延迟处理* sendMessageAtTime 和 sendMessageDelayed 方法可以实现定时、延迟等基于时间的功能** 当一个进程是为app创建的,它的主线程专门用于运行一个消息队列,* 该消息队列负责管理顶级应用程序对象(活动、广播接收器等)和它们创建的任何Windows** 你可以创建一个子线程,通过 Handler 与主线程通信。* Handler通信:通过子线程的 post 或 sendMessage 方法将计划的* Runnable 或 Message 放到 Handler 的消息队列中,按优先级队列进行处理。*/public class Handler { //构造函数翻译
/*** 默认构造函数将此与当前线程的 Looper 相关联。** 如果该线程没有 Looper,则该程序将无法接收消息,因此会引发异常。** 在 Handler 构造期间选择的 Looper 可能会导致操作丢失(比如 Handler 销毁)、* 崩溃(如果在没有 Looper 的线程上放消息)* 可以通过 concurrent.Executor、Looper.getMainLooper或类似方法明确指定 Looper。* 如果默认是本线程,请使用 new Handler(Looper.myLooper())*/
@Deprecatedpublic Handler() {this(null, false);}
/*** 使用提供的 Looper 并采用一个回调接口来处理消息,再设置 Handler 是否是异步的。** 默认情况下,Handler 是同步的,除非使用此构造函数来创建一个异步的 Handler。** 异步消息不受 MessageQueue 的等待影响,立刻处理消息。** 传进来的 looper 一定不能为空。* callback 处理消息的回调接口或为 null。* async 如果为 true,则 Handler 让它的每个 Message 或 Runnable* 都调用 Messageset.Asynchronous(boolean)*/
@UnsupportedAppUsagepublic Handler(@NonNull Looper looper, @Nullable Callback callback, boolean async) {mLooper = looper;mQueue = looper.mQueue;mCallback = callback;mAsynchronous = async;}
}
Handler源码翻译相关推荐
- Handler源码分析(超详细的)
这篇博客是一种入门级的但讲的很细,本人能力有限,希望看到大神,发现有不对的地方请联系我,也希望可以和大家在讨论区互动. 本文不管是从哪得到得信息,本人都认真的研究过和测试.包括代码所以说本人技术可能一 ...
- Handler源码解读
大家面试的时候是否经常被问到有没有看过handler源码,如果回答看过了接下来就各种深入提问,直到问得你云里雾里面试官才开心.今天作者带领大家一起深入地过一遍handler源码,将面试常用问题各个击破 ...
- Handler源码解析2
Handler源码解析1 https://blog.csdn.net/qq_44076155/article/details/110676740 Handler源码解析2 https://blog.c ...
- Handler 源码解析——Handler的创建
前言 Android 提供了Handler和Looper来来满足线程间的通信,而前面我们所说的IPC指的是进程间的通信.这是两个完全不同的概念. Handler先进先出原则,Looper类用来管理特定 ...
- ArrayList源码翻译
ArrayList源码翻译 简介 属性解读 初始化 添加方法 get方法 set方法 remove方法 contains方法 clone方法 总结 简介 ArrayList 是 java 集合框架中比 ...
- Handler全家桶之 —— Handler 源码解析
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 本文首发于本人简书 前言 好记性不如烂笔头. 这是一个系列文章,将会包括: Handler全家桶之 -- Handler 源码解析 ...
- three.js源码翻译及案例(五)-GLTFLoader.js
写在前面 Three中的加载脚本很多,但是核心思想是差不多的,就是文件用文件解析器加载,图片用图片解析器加载,然后json转换为对象,但是由于gltf格式可以自己编辑所以有的源码参考意义不大,glb及 ...
- easyui源码翻译1.32--panel(面板)
前言 昨天发布了表格datagrid的翻译源码 ,easyui的许多插件有依赖关系 比如datagrid 的渲染需要panel.resizable.linkbutton.pagination 今 ...
- easyui源码翻译1.32--Messager(消息窗口)
前言 使用$.messager.defaults重写默认值对象.下载该插件翻译源码 消息窗口提供了不同的消息框风格,包含alert(警告框), confirm(确认框), prompt(提示框), p ...
最新文章
- 2019年互联网趋势报告
- 电脑如何恢复声音_电脑文件剪切丢失如何恢复?99%数据都能恢复
- 活久见!北大博士干了半年外卖骑手,写出 AI 伦理论文登上顶刊,“系统知道一切”...
- Android中的防缓冲区溢出技术
- PHP中预定义的超全局数组
- DHL全球货运与第四范式达成合作
- rocketmq 消费者不能调用其他服务_Spring Cloud Alibaba RocketMQ - 构建异步通信的微服务...
- 【数据结构与算法】之深入解析“分数加减运算”的求解思路与算法示例
- Beef加载MSF插件
- java中数组的返回值是什么类型_打印java 数组的最简单方式是什么?
- php感悟1500,《苏菲的世界》读书笔记及心得感悟1500字
- 关于constexpr
- Linux产生僵尸进程和孤儿进程及区别
- [转]VS2010 安装 fixedsys字体
- Word中插入MATLAB矢量图
- 华为员工离职心声:菊厂15年退休,感恩,让我实现了财务自由!
- 2017 Top 10 Web 应用安全威胁,你的企业正在经历哪些?
- 浅谈SQL基础操作概念
- qt 嵌入web页面_Qt与Web混合开发(一)--简单使用
- NLP专题直播 | 详谈Transformer, BERT, ALBERT, XLNet(ALBERT第一作者亲自讲解)
热门文章
- 【Shell】source命令
- 【Linux】网络基础(1)
- mac版mysql workbench_MySQL Workbench for mac下载-MySQL Workbench for mac(数据库工具) v8.0.16特别版 - Mac天空...
- 2022.10.EEP開發筆記-1
- 华为手机一键刷新在哪里_华为手机怎么开启应用自动更新?华为手机WIFI下自动更新软件教程...
- 【​观察】SAP Analytics Cloud在华落地,用哪“三把钥匙”打开分析云市场?
- 软件工程毕业设计课题(75)微信小程序毕业设计PHP购物商城小程序系统设计与实现
- PermissionError: [Errno 13] Permission denied 已解决
- Python合并两个相交的框
- 绿屏抠图(image matting)