鸿蒙开发接口资源调度:【@ohos.workScheduler (延迟任务调度)】

 延迟任务调度

本模块提供延迟任务注册、取消、查询的能力。

开发者在开发应用时,通过调用延迟任务注册接口,注册对实时性要求不高的延迟任务,该任务默认由系统安排,在系统空闲时根据性能、功耗、热等情况进行调度执行。

说明:  本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

导入模块

import workScheduler from '@ohos.workScheduler' 

workScheduler.startWork

startWork(work: WorkInfo): boolean

通知WorkSchedulerService将工作添加到执行队列。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
work[WorkInfo]指示要添加到执行队列的工作。

返回值

类型说明
boolean如果工作成功添加到执行队列,则返回true,否则返回false。

示例

  let workInfo = {workId: 1,batteryLevel:50,batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,isRepeat: false,isPersisted: true,bundleName: "com.example.myapplication",abilityName: "MyExtension"}var res = workScheduler.startWork(workInfo);console.info("workschedulerLog res:" + res);

workScheduler.stopWork

stopWork(work: WorkInfo, needCancel?: boolean): boolean

通知WorkSchedulerService停止指定工作。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
work[WorkInfo]指示要停止的工作。
needCancelboolean是否需要取消的工作。

返回值

类型说明
boolean如果成功,则返回true,否则返回false。

示例

  let workInfo = {workId: 1,batteryLevel:50,batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,isRepeat: false,isPersisted: true,bundleName: "com.example.myapplication",abilityName: "MyExtension"}var res = workScheduler.stopWork(workInfo, false);console.info("workschedulerLog res:" + res);

workScheduler.getWorkStatus

getWorkStatus(workId: number, callback : AsyncCallback<WorkInfo>): void

获取工作的最新状态,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
workIdnumberwork的id。
callbackAsyncCallback<[WorkInfo]>指定的callback回调方法。如果指定的工作Id有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。

示例

  workScheduler.getWorkStatus(50, (err, res) => {if (err) {console.info('workschedulerLog getWorkStatus failed, because:' + err.code);} else {for (let item in res) {console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);}}});

workScheduler.getWorkStatus

getWorkStatus(workId: number): Promise<WorkInfo>

获取工作的最新状态,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
workIdnumberwork的id。

返回值

类型说明
Promise<[WorkInfo]>指定的Promise回调方法。如果指定的工作ID有效,则返回从WorkSchedulerService获取的有效工作状态;否则返回null。

示例

  workScheduler.getWorkStatus(50).then((res) => {for (let item in res) {console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]);}}).catch((err) => {console.info('workschedulerLog getWorkStatus failed, because:' + err.code);})

workScheduler.obtainAllWorks

obtainAllWorks(callback : AsyncCallback<void>): Array<WorkInfo>

获取与当前应用程序关联的所有工作,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
callbackAsyncCallback<void>指定的callback回调方法。返回与应用程序关联的所有工作。

返回值

类型说明
Array<[WorkInfo]>返回与应用程序关联的所有工作。

示例

  workScheduler.obtainAllWorks((err, res) =>{if (err) {console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);} else {console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));}});

workScheduler.obtainAllWorks

obtainAllWorks(): Promise<Array<WorkInfo>>

获取与当前应用程序关联的所有工作,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

返回值

类型说明
Promise<Array<[WorkInfo]>>指定的Promise回调方法。返回与应用程序关联的所有工作。

示例

  workScheduler.obtainAllWorks().then((res) => {console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res));}).catch((err) => {console.info('workschedulerLog obtainAllWorks failed, because:' + err.code);})

workScheduler.stopAndClearWorks

stopAndClearWorks(): boolean

停止和取消与当前应用程序关联的所有工作。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

示例

  let res = workScheduler.stopAndClearWorks();console.info("workschedulerLog res:" + res);

workScheduler.isLastWorkTimeOut

isLastWorkTimeOut(workId: number, callback : AsyncCallback<void>): boolean

检查指定工作的最后一次执行是否为超时操作,使用Callback形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
workIdnumberwork的id。
callbackAsyncCallback<void>指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。

返回值

类型说明
boolean指定的callback回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。

示例

  workScheduler.isLastWorkTimeOut(500, (err, res) =>{if (err) {console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);} else {console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);}});

workScheduler.isLastWorkTimeOut

isLastWorkTimeOut(workId: number): Promise<boolean>

检查指定工作的最后一次执行是否为超时操作,使用Promise形式返回。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

参数名类型必填说明
workIdnumberwork的id。

返回值

类型说明
Promise<boolean>指定的Promise回调方法。如果指定工作的最后一次执行是超时操作,则返回true;否则返回false。

示例

  workScheduler.isLastWorkTimeOut(500).then(res => {console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res);}).catch(err =>  {console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.code);});

WorkInfo

提供工作的具体信息。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler

参数名类型必填说明
workIdnumber当前工作的ID
bundleNamestring延迟任务包名
abilityNamestring延迟任务回调通知的组件名(必填)
networkType[NetworkType]网络类型
isChargingboolean是否充电
chargerType[ChargingType]充电类型
batteryLevelnumber电量
batteryStatus[BatteryStatus]电池状态
storageRequest[StorageRequest]存储状态
isRepeatboolean是否循环任务
repeatCycleTimenumber循环间隔
repeatCountnumber循环次数
isPersistedboolean是否持久化保存工作
isDeepIdleboolean是否要求设备进入空闲状态
idleWaitTimenumber空闲等待时间

NetworkType

触发工作的网络类型。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler

名称默认值说明
NETWORK_TYPE_ANY0表示这个触发条件是任何类型的网络连接。
NETWORK_TYPE_MOBILE1表示这个触发条件是Mobile网络连接。
NETWORK_TYPE_WIFI2表示这个触发条件是Wifi类型的网络连接。
NETWORK_TYPE_BLUETOOTH3表示这个触发条件是Bluetooth网络连接。
NETWORK_TYPE_WIFI_P2P4表示这个触发条件是Wifi P2P网络连接。
NETWORK_TYPE_ETHERNET5表示这个触发条件是有线网络连接。

ChargingType

触发工作的充电类型。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler

名称默认值说明
CHARGING_PLUGGED_ANY0表示这个触发条件是任何类型的充电器连接。
CHARGING_PLUGGED_AC1表示这个触发条件是直流充电器连接。
CHARGING_PLUGGED_USB2表示这个触发条件是USB充连接。
CHARGING_PLUGGED_WIRELESS3表示这个触发条件是无线充电器连接。

BatteryStatus

触发工作的电池状态。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler

名称默认值说明
BATTERY_STATUS_LOW0表示这个触发条件是低电告警。
BATTERY_STATUS_OKAY1表示这个触发条件是从低电恢复到正常电量。
BATTERY_STATUS_LOW_OR_OKAY2表示这个触发条件是从低电恢复到正常电量或者低电告警。HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

鸿蒙文档.png

StorageRequest

触发工作的存储状态。

系统能力:以下各项对应的系统能力均为SystemCapability.ResourceSchedule.WorkScheduler

名称默认值说明
STORAGE_LEVEL_LOW0表示这个触发条件是存储空间不足。
STORAGE_LEVEL_OKAY1表示这个触发条件是从存储空间不足恢复到正常。
STORAGE_LEVEL_LOW_OR_OKAY2表示这个触发条件是从存储空间不足恢复到正常或者存储空间不足。

到这里我们就基本上学完了这个知识点,当然如果说要真正参与到鸿蒙的开发当中,要学的还有很多。大家可以看看下面这个鸿蒙入门到实战的学习技术路线图:

 而随着鸿蒙的火热,现阶段已有许多Android、前端等开发者看中其未来趋势;想从网上查阅学习,但搜索到的鸿蒙资料都是七零八碎的,对此为了避免大家在学习过程中浪费过多时间,特地根据鸿蒙官方发布文档结合华为内部人员的分享,经过反复修改整理得出:

整套鸿蒙(HarmonyOS NEXT)学习手册(共计1236页)与鸿蒙(HarmonyOS NEXT开发入门&实战教学视频(200集+)发放给大家。

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上少走弯路!下面点击↓↓↓拿

废话不多说,接下来好好看下这份资料。

《鸿蒙 (HarmonyOS NEXT)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ……

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

《鸿蒙 (HarmonyOS NEXT)开发入门&实战教学视频》  

↑↑↑点击即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源三方库】Fuse.js:强大、轻巧、零依赖的模糊搜索库

1.简介 Fuse.js是一款功能强大且轻量级的JavaScript模糊搜索库&#xff0c;支持OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;操作系统&#xff0c;它具备模糊搜索和排序等功能。该库高性能、易于使用、高度可配置&#xff0c;支持多种数据类型和多语…

大模型ChatGLM的部署与微调

前言&#xff1a;最近大模型太火了&#xff0c;导师让我看看能不能用到自己的实验中&#xff0c;就想着先微调一个chatGLM试试水&#xff0c;微调的过程并不难&#xff0c;难的的硬件条件跟不上&#xff0c;我试了一下lora微调&#xff0c;也算跑通了吧&#xff0c;虽然最后评估…

【问题随记】tightvnc 连接后灰屏

问题描述 刚刚入手了官方发的 OrangePi AI Pro&#xff0c;想用 tight vnc 来连接开发板&#xff0c;就不用连接屏幕那么麻烦了。结果连接后&#xff0c;没能显示 OrangePi AI Pro 桌面。 问题解决 看一下现有的桌面环境。 apt list --installed | grep desktop从中可以看到…

语言模型解构——Tokenizer

1. 认识Tokenizer 1.1 为什么要有tokenizer&#xff1f; 计算机是无法理解人类语言的&#xff0c;它只会进行0和1的二进制计算。但是呢&#xff0c;大语言模型就是通过二进制计算&#xff0c;让你感觉计算机理解了人类语言。 举个例子&#xff1a;单1&#xff0c;双2&#x…

【传知代码】探索视觉与语言模型的可扩展性(论文复现)

前言&#xff1a;在数字化时代的浪潮中&#xff0c;我们见证了人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其中视觉与语言模型作为两大核心领域&#xff0c;正以前所未有的速度改变着我们的生活和工作方式。从图像识别到自然语言处理&#xff0c;从虚拟现实…

无人机推流/RTMP视频推拉流EasyDSS无法卸载软件是什么原因?

视频推拉流/直播点播EasyDSS平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务&#xff0c;在应用场景中可实现视频直播、点播、转码、管理、录像、检索、时移回看等。此外&#xff0c;平台还支持用户自行上传视频文件&#xff0c;也可将上传的点播…

大话设计模式解读01-简单工厂模式

本系列的文章&#xff0c;来介绍编程中的设计模式&#xff0c;介绍的内容主要为《大话设计模式》的读书笔记&#xff0c;并改用C语言来实现&#xff08;书中使用的是.NET中的C#&#xff09;,本篇来学习第一章&#xff0c;介绍的设计模式是——简单工厂模式。 1 面向对象编程 …

Mixly 开启WIFI AP UDP收发数据

一、开发环境 软件&#xff1a;Mixly 2.0在线版 硬件&#xff1a;ESP32-C3&#xff08;立创实战派&#xff09; 固件&#xff1a;ESP32C3 Generic(UART) 测试工工具&#xff1a;NetAssist V5.0.1 二、实现功能 ESP32开启WIFI AP&#xff0c;打印接入点IP地址&#xff0c;允许…

模拟堆-java

模拟堆也是对堆的一次深入理解和一些其它操作&#xff0c;可以了解一下。 文章目录 前言 一、模拟堆 二、算法思路 1.结点上移 2.结点下移 3.插入一个数 4.输出当前集合的最小值 5.删除当前集合的最小值&#xff08;数据保证此时的最小值唯一&#xff09; 6.删除第k个插入的数 …

Springboot健身房管理系统-计算机毕业设计源码44394

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在健身房管理的要求下&#xff0c;开发一款整体式结构的健身房管理系统…

代理 模式

一、什么是代理模式 代理模式指代理控制对其他对象的访问&#xff0c;也就是代理对象控制对原对象的引⽤。在某些情况下&#xff0c;⼀个对象不适合或者不能直接被引⽤访问&#xff0c;⽽代理对象可以在客⼾端和⽬标对象之间起到中介的作⽤。 二、为什么使用代理模式 模式作…

HW面试常见知识点2——研判分析(蓝队中级版)

&#x1f340;文章简介&#xff1a;又到了一年一度的HW时刻&#xff0c;本文写给新手想快速进阶HW蓝中的网安爱好者们&#xff0c; 通读熟练掌握本文面试定个蓝中还是没问题的&#xff01;大家也要灵活随机应变&#xff0c;不要太刻板的回答&#xff09; &#x1f341;个人主页…

揭秘下载数据背后的秘密,Xinstall助你掌握市场脉搏

在当下这个移动互联网时代&#xff0c;应用推广已成为各大企业竞争的重要战场。然而&#xff0c;如何有效地获取并分析应用下载数据&#xff0c;却成为了许多推广者面临的难题。今天&#xff0c;我们将为大家介绍一款强大的应用推广助手——Xinstall&#xff0c;它能够帮助你轻…

隐藏 IP 地址的重要性是什么?

在当今的数字时代&#xff0c;保护我们的在线身份至关重要。从保护个人信息到保护隐私&#xff0c;互联网用户越来越多地寻求增强在线安全性的方法。保持匿名和保护敏感数据的一个关键方面是隐藏您的 IP 地址。在这篇博文中&#xff0c;我们将深入探讨隐藏 IP 地址的重要性&…

人脸识别技术与人证合一智能闸机的剖析

人脸识别技术&#xff0c;作为一种先进的生物认证手段&#xff0c;依据个体面部独有的特征信息来进行身份验证。这项技术通过捕获图像或视频中的面部数据&#xff0c;执行一系列精密步骤&#xff0c;包括图像获取、面部定位、预处理、特征提取与比对&#xff0c;以确认个人身份…

【JMeter接口自动化】第2讲 Jmeter目录结构

JMeter的目录结构如下&#xff1a; bin目录&#xff1a;可执行文件目录&#xff0c;启动jmeter时&#xff0c;就是启动bin目录下的ApacheJmeter.jar&#xff0c;jmeter.bat&#xff0c;jmeter.sh ApacheJmeter.jar:启动文件 jmeter.bat&#xff1a;Windows 的启动命令。 jmeter…

前端框架前置知识之Node.js:fs模块、path模块、http模块、端口号介绍

什么是模块&#xff1f; 类似插件&#xff0c;封装了方法 / 属性 fs 模块- 读写文件 代码示例 // 1. 加载 fs 模块对象 const fs require(fs) // 2. 写入文件内容 fs.writeFile(./test.txt, hello, Node.js, (err) > {if (err) console.log(err) //若 err不为空&#xf…

韩顺平0基础学java——第15天

p303-326 重写override 和重载做个对比 注&#xff1a;但子类可以扩大范围&#xff0c;比如父类是protected&#xff0c;子类可以是public 多态 方法或对象具有多种形态&#xff0c;是面向对象的第三大特征&#xff0c;多态是建立在封装和继承基础之上的。 多态的具体体现…

绕过WAF(Web应用程序防火墙)--介绍、主要功能、部署模式、分类及注入绕过方式等

网站WAF是一款集网站内容安全防护、网站资源保护及网站流量保护功能为一体的服务器工具。功能涵盖了网马/木马扫描、防SQL注入、防盗链、防CC攻击、网站流量实时监控、网站CPU监控、下载线程保护、IP黑白名单管理、网页防篡改功能等模块。能够为用户提供实时的网站安全防护&…

Java开发:Spring Boot 实战教程

序言 随着技术的快速发展和数字化转型的深入推进&#xff0c;软件开发领域迎来了前所未有的变革。在众多开发框架中&#xff0c;Spring Boot凭借其“约定大于配置”的核心理念和快速开发的能力&#xff0c;迅速崭露头角&#xff0c;成为当今企业级应用开发的首选框架之一。 《…