发布时间:2025-11-05 01:00:15 来源:云智核 作者:应用开发

想了解更多内容,蒙操门经请访问:
和华为官方合作共建的作系鸿蒙技术社区
https://harmonyos.51cto.com
时间:2021年7月24日08:28:18
本文包含笔者对徐文礼老师的《鸿蒙操作系统开发入门经典》的学习过程中的笔记总结、拓展思考、统开贴板案例反馈、发入阅读体验。典线
为尊重老师的程管知识产权和精简本文,本文不会粘贴代码、理剪倒置案例、蒙操门经机械打字。作系
时间:2021年7月24日08:50:383
注:这一部分书上跟开发文档基本上就是统开贴板一样的
(from开发文档)

为了更好地体现四个任务分发器的对比关系,笔者制表如下:

注:UITaskDispatcher、MainTaskDispatcher都属于专有任务分发器SpecTastDispatcher。建议使用UITaskDispatcher。
//GlobalTaskDispatcher全局并发任务分发器 TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT); //ParallelTaskDispatcher并发任务分发器 String dispatcherName = "parallelTaskDispatcher"; TaskDispatcher parallelTaskDispatcher = createParallelTaskDispatcher(dispatcherName, TaskPriority.DEFAULT); //SerialTaskDispatcher串行任务分发器 String dispatcherName = "serialTaskDispatcher"; TaskDispatcher serialTaskDispatcher = createSerialTaskDispatcher(dispatcherName, TaskPriority.DEFAULT); //SpecTaskDispatcher专有任务分发器 TaskDispatcher uiTaskDispatcher = getUITaskDispatcher(); 开发步骤总结为了更好地体现开发任务的的对比关系,笔者制表如下:

时间:2021年7月24日10:32:10
注:书中对于这一块也是和开发文档一模一样的。
学习总结:
目的:合理运用线程资源
元素:事件(InnerEvent)、任务(Runnable)、机制(EventHandler)、循环器(EventRunner)
场景:投递事件(双向)、投递任务、
方法:
创建机制子类并重写方法 创建循环器 创建机制子类实例 投递事件(需要获取事件实例)、投递任务 启动或停止机制
使用EventHandler实现线程间通信的主要流程:
1.EventHandler投递具体的InnerEvent事件或者Runnable任务到EventRunner所创建的线程的事件队列。
2.EventRunner循环从事件队列中获取InnerEvent事件或者Runnable任务。
3.处理事件或任务:
如果EventRunner取出的事件为InnerEvent事件,则触发EventHandler的回调方法并触发EventHandler的处理方法,在新线程上处理该事件。 如果EventRunner取出的事件为Runnable任务,则EventRunner直接在新线程上处理Runnable任务。4.约束限制
在进行线程间通信的时候,EventHandler只能和EventRunner所创建的线程进行绑定,EventRunner创建时需要判断是否创建成功,只有确保获取的EventRunner实例非空时,才可以使用EventHandler绑定EventRunner。 一个EventHandler只能同时与一个EventRunner绑定,一个EventRunner可以同时绑定多个EventHandler。5.EventRunner工作模式
EventRunner的工作模式可以分为托管模式和手动模式。两种模式是在调用EventRunner的create()方法时,通过选择不同的参数来实现的,详见API参考。默认为托管模式。
托管模式:不需要开发者调用run()和stop()方法去启动和停止EventRunner。当EventRunner实例化时,系统调用run()来启动EventRunner;当EventRunner不被引用时,系统调用stop()来停止EventRunner。 手动模式:需要开发者自行调用EventRunner的run()方法和stop()方法来确保线程的启动和停止。6.EventRunner、EventHandler的接口很多。
7.三种开发应用
EventHandler投递InnerEvent事件 EventHandler投递Runnable任务 在新创建的线程里将事件投递到原线程时间:2021年7月24日08:28:14
系统剪贴板服务:在应用A中复制的数据,可以在应用B中粘贴
HarmonyOS提供了系统剪切板服务的操作接口 HarmonyOS提供了剪贴板数据的定义注意:
只有在前台获取焦点的应用才有读取系统剪切板的权限 写入数据不会随应用程序结束而被销毁 数据会被覆盖 同一设备剪切板单次传递内容不应超过800KB接口说明:
SystePastedboard提供了系统剪贴板操作的相关接口(复制、粘贴、配置回调)
PageData是剪贴板服务操作的数据对象,一个PageData由若干内容节点(PageData.Record)和一个属性集合对象(PageData.DataProperty)组成。
Record是存放剪贴板数据信息的最小单位,每个Record都有特定的MIME类型(文本、HTML、URL、Intent) 剪贴板数据的属性存放在DataProperty(时间戳、标签)开发步骤:
获取服务 A写入数据 B读取数据 C添加数据变化回调想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.51cto.com
