鸿蒙开发接口资源调度:【@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从中可以看到…

react路由

v6 来源 react-router vue-router SPA 出现后&#xff0c; 前端才开始自己接管路由 现在&#xff0c;客户端接管了路由。 router 是啥 路由的变化&#xff0c;是不是就是意味着界面&#xff08;部分内容&#xff09;的变化界面的变化&#xff0c;意味着数据的变化&#xff0…

语言模型解构——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;也可将上传的点播…

力扣2841.几乎唯一子数组的最大和

力扣2841.几乎唯一子数组的最大和 哈希表存数字出现次数 没了就erase class Solution {public:long long maxSum(vector<int>& nums, int m, int k) {long long ans 0, sum 0;unordered_map<int,int> cnt;for(int i0;i<k-1;i){sum nums[i];cnt[nums[i…

大话设计模式解读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;允许…

基于RNN和Transformer的词级语言建模 代码分析 数据集的处理 Dictionary 和 Corpus

基于RNN和Transformer的词级语言建模 代码分析 数据集的处理 Dictionary 和 Corpus flyfish Word-level Language Modeling using RNN and Transformer word_language_model PyTorch 提供的 word_language_model 示例展示了如何使用循环神经网络RNN(GRU或LSTM)和 Transform…

模拟堆-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;它能够帮助你轻…

JavaScript表单验证

表单验证是指在提交表单数据之前对用户输入的数据进行检测和验证&#xff0c;以确保数据的完整性和准确性。JavaScript是一种常用的前端编程语言&#xff0c;可以使用JavaScript来实现表单验证。 下面是一些常见的表单验证的例子&#xff0c;以及相应的JavaScript代码解释。 …

【chatgpt】学术翻译和英文润色prompt

学术翻译&#xff1a; I want you to act as a scientific English-Chinese translator, I will provide you with some paragraphs in one language and your task is to accurately and academically translate the paragraphs only into the other language. I want you pro…

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

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

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

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