目标
通过一个工程验证多线程通信功能, 通过新建一个线程每秒发送一个事件,然后在另外一个线程去更新Text控件上的时间戳。主要学习下EventHandler和TaskDispatcher机制。效果如下:
创建工程
新建一个鸿蒙os工程,选择java模板。
输入工程信息,点击完成
工程代码结构
在base目录下layout下新建一个layout_main布局文件.
layout_main布局文件内容
然后把MainAbilitySlice关联layout布局文件,代码如下:
代码实现
1、首先通过slice创建一个任务调度器,该调度器可以发布同步、异步的任务(工作线程),该线程主要作为一个定时器,每隔1秒,就是发一个事件信号给另外一个线程。
2、通过EventRunner创建一个新的线程,主要任务是接收定时器发送的信号,接收到信号后去更新ui控件上的值。
代码如下:
事件响应实现类代码:
这样就通过线程间通信实现了ui操作和其他业务操作分开的功能。 避免因为耗时操作导致ui卡死。 还有其他方式也可以实现,后续再补充。
- 本文固定链接: https://www.lehoon.com/2020/09/18/开发鸿蒙app-线程通信时钟demo/
- 转载请注明: lehoon 于 乐生活 发表