鸿蒙开发接口资源调度:【@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)开发入门&实战教学视频》  

↑↑↑点击即可

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux配置java,maven,marshalsec环境

文章目录 一. Linux配置java环境1.下载jdk文件2.解压tar.gz文件3.设置java环境变量4.验证是否成功 二. Linux配置maven环境1.下载压缩包2.解压tar.gz3. 配置环境变量 三. Linux配置marshalsec环境 一. Linux配置java环境 1.下载jdk文件 mkdir /opt/javawget https://repo.hua…

高通开发系列 - ubuntu中的docker安装debian镜像

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 概述当前状态Ubuntu中安装dockerDebian镜像Debian容器中操作更改Debian源安装应用程序

VIKOR方法

简介 VIKOR方法是一种多标准决策&#xff08;MCDM&#xff09;或多标准决策分析方法。它最初由 Serafim Opricovic 开发&#xff0c;用于解决具有冲突和不可通约&#xff08;不同单位&#xff09;标准的决策问题&#xff0c;假设冲突解决可以接受妥协&#xff0c;决策者想要一…

力扣174题动态规划:地下城游戏(含模拟面试)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业…

【C++初阶学习】第十二弹——stack和queue的介绍和使用

C语言栈&#xff1a;数据结构——栈(C语言版)-CSDN博客 C语言队列&#xff1a;数据结构——队列&#xff08;C语言版&#xff09;-CSDN博客 前言&#xff1a; 在之前学习C语言的时候&#xff0c;我们已经学习过栈与队列&#xff0c;并学习过如何使用C语言来实现栈与队列&…

sql注入 (运用sqlmap解题)

注:level参数 使用–batch参数可指定payload测试复杂等级。共有五个级别&#xff0c;从1-5&#xff0c;默认值为1。等级越高&#xff0c;测试的payload越复杂&#xff0c;当使用默认等级注入不出来时&#xff0c;可以尝试使用–level来提高测试等级。 --level 参数决定了 sql…

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

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

【全开源】种草分享|动态朋友圈|瀑布流|uniapp

一款基于FastadminThinkPHP和Uniapp开发的种草分享评论点赞消息提醒系统&#xff0c;发布动态&#xff0c;分享种草生活&#xff0c;可以收藏关注点赞&#xff0c;消息提醒&#xff0c;同时支持H5/小程序/app多端。 ​让每一次互动都不再错过&#x1f514; &#x1f331; 种草…

Linux学习笔记(三)

一、创建/删除文件夹 1.mkdir -p 文件夹名/子文件夹/子文件夹&#xff1b; 2.mkdir test{a,b,c} : 创建testa、testb、testc文件夹&#xff1b; 3.mkdir -p test/{a,b,c}:创建test文件夹&#xff0c;并在文件夹中创建a、b、c文件夹&#xff1b; 4.rmdir 文件夹&#xff1a…

北京Profinet转Modbus网关配置调试详解

一、背景&#xff1a;在工业自动化系统中&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;与流量计之间的通信是非常重要的&#xff0c;以确保数据准确传输并实现控制功能。然而&#xff0c;由于PLC和流量计可能采用不同的通信协议&#xff08;如Profinet和Modbus&…

前端将DOM元素导出为图片

前端工作中经常会用到把一些元素导出&#xff0c;比如表格&#xff0c;正好项目有遇到导出为excel和导出为图片&#xff0c;就都封装实现了一下&#xff0c;以供其他需求的开发者使用&#xff1a; 1.导出为文档 这个说白了就是下载的功能&#xff0c;传过去检索参数&#xff…

最小二乘法算法(个人总结版)

最小二乘法&#xff08;Least Squares Method&#xff09;是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程&#xff0c;涵盖基本概念、数学推导、具体步骤和实现代码。 1. 最小二乘法基本概念…

大模型应用框架-LangChain

LangChain的介绍和入门 &#x1f4a5; 什么是LangChain LangChain由 Harrison Chase 创建于2022年10月&#xff0c;它是围绕LLMs&#xff08;大语言模型&#xff09;建立的一个框架&#xff0c;LLMs使用机器学习算法和海量数据来分析和理解自然语言&#xff0c;GPT3.5、GPT4是…

Java应用中的短信发送解决方案:RocketMQ实践指南

在当今的数字化时代&#xff0c;短信作为一种即时的通讯方式&#xff0c;被广泛应用于各种业务场景中&#xff0c;如用户身份验证、订单状态更新、营销推广等。对于Java应用来说&#xff0c;集成一个高效、可靠的短信发送服务是至关重要的。Apache RocketMQ 作为一款高性能、低…

102.网络游戏逆向分析与漏洞攻防-ui界面的设计-反隐身功能的界面设计与实现(有不使用MFC生成,自己手写代码创建复选框与事件的例子)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

STM32--ADC

一、简介 *ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 *ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁 *12位逐次逼近型ADC&#xff0c;1us转换时间 *输入电压范围&#xff1a;0~3.3V&…

基于Springboot+vue实现的汽车服务管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

Java开发:Spring Boot 实战教程

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

露营地管理小程序基于ThinkPHP+FastAdmin+UniApp开发

应用介绍 本文来自&#xff1a;露营地管理小程序基于ThinkPHPFastAdminUniApp开发 - 源码1688 基于ThinkPHPFastAdminUniApp开发的现代化的露营地管理小程序&#xff0c;是专为露营业务设计开发小程序应用。平台拥有多角色管理&#xff0c;同时具有营位预定、门票购买等功能模…

OrangePi AI Pro 测试体验

感谢CSDN活动提供的OrangePi AI Pro &#xff0c;之前一直用的树莓派&#xff0c;正好体验一下新的国产设备&#xff0c; 1、开机体验 整个设备包装不错&#xff0c;链接键盘、屏幕和鼠标&#xff0c;整体开机体验不错&#xff0c;内置OS不错&#xff0c;这个系统内嵌了中文输…