首页 > 程序开发 > 开发鸿蒙App-线程通信时钟demo
2020
09-18

开发鸿蒙App-线程通信时钟demo

目标

通过一个工程验证多线程通信功能, 通过新建一个线程每秒发送一个事件,然后在另外一个线程去更新Text控件上的时间戳。主要学习下EventHandler和TaskDispatcher机制。效果如下:

 

创建工程

新建一个鸿蒙os工程,选择java模板。

开发鸿蒙App-线程通信时钟demo - 第1张  | 乐生活

输入工程信息,点击完成开发鸿蒙App-线程通信时钟demo - 第2张  | 乐生活

工程代码结构

开发鸿蒙App-线程通信时钟demo - 第3张  | 乐生活

在base目录下layout下新建一个layout_main布局文件.

开发鸿蒙App-线程通信时钟demo - 第4张  | 乐生活

layout_main布局文件内容

开发鸿蒙App-线程通信时钟demo - 第5张  | 乐生活

然后把MainAbilitySlice关联layout布局文件,代码如下:

开发鸿蒙App-线程通信时钟demo - 第6张  | 乐生活

代码实现

1、首先通过slice创建一个任务调度器,该调度器可以发布同步、异步的任务(工作线程),该线程主要作为一个定时器,每隔1秒,就是发一个事件信号给另外一个线程。

2、通过EventRunner创建一个新的线程,主要任务是接收定时器发送的信号,接收到信号后去更新ui控件上的值。

代码如下:

开发鸿蒙App-线程通信时钟demo - 第7张  | 乐生活

事件响应实现类代码:

开发鸿蒙App-线程通信时钟demo - 第8张  | 乐生活这样就通过线程间通信实现了ui操作和其他业务操作分开的功能。 避免因为耗时操作导致ui卡死。 还有其他方式也可以实现,后续再补充。

最后编辑:
作者:lehoon
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。