#鸿蒙通关秘籍#如何编写一个Worker以管理鸿蒙应用中的常驻任务?

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
hm673ff0627862b

编写一个管理常驻任务的Worker,可通过以下步骤实现。

首先,创建一个Worker文件,并在宿主线程导入:

bash import { worker } from '@kit.ArkTS';

在宿主线程初始化Worker对象,指定对应脚本:

bash const workerInstance: worker.ThreadWorker = new worker.ThreadWorker('entry/ets/workers/Worker.ets');

响应用户操作,利用postMessage发送开始与终止命令:

bash .onClick(() => { workerInstance.postMessage({type: 'start'}) workerInstance.onmessage = (event) => { console.info('UI主线程收到消息:', event.data); } setTimeout(() => { workerInstance.postMessage({ type: 'stop' }); }, 10000); })

在Worker文件中设置消息处理逻辑:

根据宿主线程的指令执行或停止任务。

bash workerPort.onmessage = (e) => { if (e.data.type === 'start' && !isRunning) { isRunning = true; performTask(); } else if (e.data.type === 'stop') { isRunning = false; workerPort.close(); } }

let isRunning = false; function performTask() { if (isRunning) { workerPort.postMessage('Worker is performing a task'); setTimeout(performTask, 1000); } }

分享
微博
QQ
微信
回复
2天前
相关问题
如何编写一个可继承Page?
309浏览 • 1回复 待解决
如何创建一个worker线程
899浏览 • 1回复 待解决