衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發接口資源調度:【@ohos.workScheduler (延遲任務調度)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-04 10:01 ? 次閱讀

延遲任務調度

本模塊提供延遲任務注冊、取消、查詢的能力。

開發者在開發應用時,通過調用延遲任務注冊接口,注冊對實時性要求不高的延遲任務,該任務默認由系統安排,在系統空閑時根據性能、功耗、熱等情況進行調度執行。

icon-note.gif說明: 本模塊首批接口從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): 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

獲取工作的最新狀態,使用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): Array

獲取與當前應用程序關聯的所有工作,使用Callback形式返回。

系統能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數

參數名類型必填說明
callbackAsyncCallback指定的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>

獲取與當前應用程序關聯的所有工作,使用Promise形式返回。

系統能力 :SystemCapability.ResourceSchedule.WorkScheduler

返回值

類型說明
Promise>指定的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): boolean

檢查指定工作的最后一次執行是否為超時操作,使用Callback形式返回。

系統能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數

參數名類型必填說明
workIdnumberwork的id。
callbackAsyncCallback指定的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

檢查指定工作的最后一次執行是否為超時操作,使用Promise形式返回。

系統能力 :SystemCapability.ResourceSchedule.WorkScheduler

參數

參數名類型必填說明
workIdnumberwork的id。

返回值

類型說明
Promise指定的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表示這個觸發條件是從低電恢復到正常電量或者低電告警。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

StorageRequest

觸發工作的存儲狀態。

系統能力 :以下各項對應的系統能力均為SystemCapability.ResourceSchedule.WorkScheduler

名稱默認值說明
STORAGE_LEVEL_LOW0表示這個觸發條件是存儲空間不足。
STORAGE_LEVEL_OKAY1表示這個觸發條件是從存儲空間不足恢復到正常。
STORAGE_LEVEL_LOW_OR_OKAY2表示這個觸發條件是從存儲空間不足恢復到正常或者存儲空間不足。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8691

    瀏覽量

    151917
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43050
收藏 人收藏

    評論

    相關推薦

    鴻蒙原生應用/元服務開發-延遲任務說明(一)

    時刻最多申請10個延遲任務。 執行頻率限制:系統對延遲任務做分級管控,限制延遲任務
    發表于 01-16 14:57

    鴻蒙原生應用/元服務開發-延遲任務開發實現(二)

    : workScheduler.WorkInfo): void 延遲調度任務開始的回調 onWorkStop(work: workScheduler
    發表于 01-17 17:53

    (轉)HarmonyOS(鴻蒙OS)發布,聊聊操作系統的調度

    卻不得不在多個并發服務之間做公平資源調配。 Windows可以做到將資源傾斜給前臺任務,Linux不行。Linux可以做到資源的公平份額調度
    發表于 08-20 08:00

    Spark資源任務調度的詳細步驟

    Spark資源調度任務調度流程
    發表于 10-10 09:01

    鴻蒙內核源碼分析(調度機制篇):Task是如何被調度執行的

    本文分析任務調度機制源碼 詳見:代碼庫建議先閱讀閱讀之前建議先讀本系列其他文章,進入鴻蒙系統源碼分析(總目錄),以便對本文任務調度機制的理解
    發表于 11-23 10:53

    鴻蒙分布式任務調度

    鴻蒙分布式任務調度,實現跨設備FA拉起
    發表于 06-12 17:28

    鴻蒙分布式任務調度——數據傳遞

    鴻蒙分布式任務調度之數據傳遞
    發表于 06-12 17:29

    【木棉花】:簡單的分布式任務調度

    Ability:Service模板:用于提供后臺運行任務的能力。Data模板:用于對外部提供統一的數據訪問抽象。根據 Ability 模板及意圖的不同,分布式任務調度開發者提供以下
    發表于 09-03 14:34

    調度器的原理及其任務調度代碼實現

    一、介紹調度器是常用的一種編程框架,也是操作系統的拆分多任務的核心,比如單片機的裸機程序框架,網絡協議棧的框架如can網關、485網關等等,使用場合比較多,是做穩定產品比較常用的編程技術二、原理1
    發表于 02-17 07:07

    STM32開發板移植鴻蒙liteos_m內核,編譯通過之后運行無法調度編寫的任務

    STM32開發板移植鴻蒙liteos_m內核,編譯通過之后運行無法調度編寫的任務,可以看到任務已經注冊成功,就是不能
    發表于 11-18 11:46

    云計算環境中任務調度應用

    云計算環境中的任務調度問題一直是云計算研究的重點,任務調度的目的尋找最優的任務調度策略,以高效地
    發表于 11-02 17:30 ?3次下載
    云計算環境中<b class='flag-5'>任務</b><b class='flag-5'>調度</b>應用

    基于改進型統一調度算法改善任務集的可調度

    的搶占,降低資源額外銷耗,能夠提高任務集合的可調度性;但其任務的可調度性分析方法過于粗糙,影響任務
    發表于 11-20 11:27 ?0次下載

    基于Spark的資源調度算法研究

    。算法通過實時監視工作節點資源利用情況,增加對節點CPU處理速度和CPU剩余利用率的考慮,重新調度與分配資源,為Spark作為Web服務高并發請求、低延遲響應提供優化,還可以減少傳統方
    發表于 11-27 15:52 ?0次下載
    基于Spark的<b class='flag-5'>資源</b><b class='flag-5'>調度</b>算法研究

    基于改進GEP的局部云任務調度算法

    針對云計算中一些現有的基于批量調度模式和進化算法的動態云任務調度算法計算量較大,計算時間成本較高的現象,提出了一種基于改進基因表達式編程(GEP)和資源改變量的局部云
    發表于 01-18 13:50 ?0次下載
    基于改進GEP的局部云<b class='flag-5'>任務</b><b class='flag-5'>調度</b>算法

    鴻蒙OS 分布式任務調度

    鴻蒙OS 分布式任務調度概述 在 HarmonyO S中,分布式任務調度平臺對搭載 HarmonyOS 的多設備構筑的“超級虛擬終端”提供統
    的頭像 發表于 01-29 16:50 ?565次閱讀
    百家乐游戏真人游戏| 澳门百家乐官网牌规| 棋牌室转让| 新世纪百家乐娱乐城| 线上百家乐官网手机版| 百家乐官网一拖三| 阳城县| 立博网址| 威尼斯人娱乐城怎么样lm0| 百家乐真人娱乐城陈小春| 百家百家乐官网官网网站| 可以玩百家乐官网的博彩公司| 关岭| 开平市| 足球注册网站| 大发888大发体育| 百家乐双龙| 杨氏百家乐必胜公式| 澳门百家乐娱乐城送彩金| 百家乐官网发牌规| 唐朝百家乐官网的玩法技巧和规则| 百家乐官网荷官培训| 泸溪县| 百家乐官网赌博机原理| 百家乐官网技巧和规律| 桐梓县| 百家乐官网真人视屏游戏| 百家乐官网如何投注技巧| 真钱棋牌导航网| 宁南县| 新沂市| 博彩百家乐官网规则| 网上的百家乐官网是假的吗| 百家乐官网游戏新| 百家乐是不是有假| 百家乐官网乐百家娱乐场| 百家乐稳赢赌法| 真人百家乐ea平台| 新澳博百家乐的玩法技巧和规则| 大发888分享| 维多利亚娱乐城|