harmony(鸿蒙)延迟任务调度

2022-08-09 浏览 (1144)

延迟任务调度

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

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

说明:

导入模块

import workScheduler from '@ohos.workScheduler';

workScheduler.startWork

startWork(work: WorkInfo): boolean

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

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

名称类型必填说明
workWorkInfo指示要添加到执行队列的工作。

返回值

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

示例

  let workInfo = {
      workId: 1,
      batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
      isRepeat: false,
      isPersisted: true,
      bundleName: "com.example.myapplication",
      abilityName: "MyExtension",
      parameters: {
          mykey0: 1,
          mykey1: "string value",
          mykey2: true,
          mykey3: 1.5
      }
  }
  let res = workScheduler.startWork(workInfo);
  console.info(`workschedulerLog res: ${res}`);

workScheduler.stopWork

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

通知WorkSchedulerService停止指定工作。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数

名称类型必填说明
workWorkInfo指示要停止的工作。
needCancelboolean是否需要取消的工作。

返回值

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

示例

  let workInfo = {
      workId: 1,
      batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW,
      isRepeat: false,
      isPersisted: true,
      bundleName: "com.example.myapplication",
      abilityName: "MyExtension",
      parameters: {
          mykey0: 1,
          mykey1: "string value",
          mykey2: true,
          mykey3: 1.5
      }
     }
  let 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

提供工作的具体信息。WorkInfo设置参数约束见延迟任务调度概述

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

名称类型必填说明
workIdnumber当前工作的ID
bundleNamestring延迟任务包名
abilityNamestring延迟任务回调通知的组件名(必填)
networkTypeNetworkType网络类型
isChargingboolean是否充电
chargerTypeChargingType充电类型
batteryLevelnumber电量
batteryStatusBatteryStatus电池状态
storageRequestStorageRequest存储状态
isRepeatboolean是否循环任务
repeatCycleTimenumber循环间隔
repeatCountnumber循环次数
isPersistedboolean是否持久化保存工作
isDeepIdleboolean是否要求设备进入空闲状态
idleWaitTimenumber空闲等待时间
parameters{[key: string]: any}携带参数信息

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表示这个触发条件是从低电恢复到正常电量或者低电告警。

StorageRequest

触发工作的存储状态。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

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

你可能感兴趣的鸿蒙文章

harmony(鸿蒙)接口

harmony(鸿蒙)开发说明

harmony(鸿蒙)BundleStatusCallback

harmony(鸿蒙)innerBundleManager模块(deprecated)

harmony(鸿蒙)distributedBundle模块(JS端SDK接口)

harmony(鸿蒙)Bundle模块(JS端SDK接口)

harmony(鸿蒙)EnterpriseAdminExtensionAbility

harmony(鸿蒙)延迟任务调度回调

harmony(鸿蒙)Ability

harmony(鸿蒙)AbilityContext

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/70ba4f96c9a4458aaf54c4b1512268ee