1e41f4b71Sopenharmony_ci# @ohos.resourceschedule.workScheduler (延迟任务调度) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块提供延迟任务注册、取消、查询的能力。在开发过程中,对于实时性要求不高的任务,可以调用本模块接口注册延迟任务,在系统空闲时根据性能、功耗、热等情况进行调度执行。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> 本模块接口仅可在Stage模型下使用。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## 导入模块 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```ts 14e41f4b71Sopenharmony_ciimport { workScheduler } from '@kit.BackgroundTasksKit'; 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## workScheduler.startWork 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_cistartWork(work: WorkInfo): void 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci申请延迟任务。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**参数**: 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 28e41f4b71Sopenharmony_ci| ---- | --------------------- | ---- | -------------- | 29e41f4b71Sopenharmony_ci| work | [WorkInfo](#workinfo) | 是 | 要添加到执行队列的延迟任务。 | 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**错误码**: 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 36e41f4b71Sopenharmony_ci| ---- | --------------------- | 37e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 38e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 39e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 40e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 41e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 42e41f4b71Sopenharmony_ci| 9700005 | Calling startWork failed | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**示例**: 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci```ts 47e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci let workInfo: workScheduler.WorkInfo = { 50e41f4b71Sopenharmony_ci workId: 1, 51e41f4b71Sopenharmony_ci batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, 52e41f4b71Sopenharmony_ci isRepeat: false, 53e41f4b71Sopenharmony_ci isPersisted: true, 54e41f4b71Sopenharmony_ci bundleName: "com.example.myapplication", 55e41f4b71Sopenharmony_ci abilityName: "MyExtension", 56e41f4b71Sopenharmony_ci parameters: { 57e41f4b71Sopenharmony_ci mykey0: 1, 58e41f4b71Sopenharmony_ci mykey1: "string value", 59e41f4b71Sopenharmony_ci mykey2: true, 60e41f4b71Sopenharmony_ci mykey3: 1.5 61e41f4b71Sopenharmony_ci } 62e41f4b71Sopenharmony_ci } 63e41f4b71Sopenharmony_ci try{ 64e41f4b71Sopenharmony_ci workScheduler.startWork(workInfo); 65e41f4b71Sopenharmony_ci console.info('workschedulerLog startWork success'); 66e41f4b71Sopenharmony_ci } catch (error) { 67e41f4b71Sopenharmony_ci console.error(`workschedulerLog startwork failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`); 68e41f4b71Sopenharmony_ci } 69e41f4b71Sopenharmony_ci``` 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci## workScheduler.stopWork 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_cistopWork(work: WorkInfo, needCancel?: boolean): void 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci取消延迟任务。 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**参数**: 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 82e41f4b71Sopenharmony_ci| ---------- | --------------------- | ---- | ---------- | 83e41f4b71Sopenharmony_ci| work | [WorkInfo](#workinfo) | 是 | 要停止或移除的延迟任务。 | 84e41f4b71Sopenharmony_ci| needCancel | boolean | 否 | 是否需要移除的任务。<br>- true表示停止并移除,false表示只停止不移除。默认为false。| 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**错误码**: 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 91e41f4b71Sopenharmony_ci| ---- | --------------------- | 92e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed. | 93e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 94e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 95e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 96e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci**示例**: 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci```ts 101e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci let workInfo: workScheduler.WorkInfo = { 104e41f4b71Sopenharmony_ci workId: 1, 105e41f4b71Sopenharmony_ci batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, 106e41f4b71Sopenharmony_ci isRepeat: false, 107e41f4b71Sopenharmony_ci isPersisted: true, 108e41f4b71Sopenharmony_ci bundleName: "com.example.myapplication", 109e41f4b71Sopenharmony_ci abilityName: "MyExtension", 110e41f4b71Sopenharmony_ci parameters: { 111e41f4b71Sopenharmony_ci mykey0: 1, 112e41f4b71Sopenharmony_ci mykey1: "string value", 113e41f4b71Sopenharmony_ci mykey2: true, 114e41f4b71Sopenharmony_ci mykey3: 1.5 115e41f4b71Sopenharmony_ci } 116e41f4b71Sopenharmony_ci } 117e41f4b71Sopenharmony_ci try{ 118e41f4b71Sopenharmony_ci workScheduler.stopWork(workInfo, false); 119e41f4b71Sopenharmony_ci console.info('workschedulerLog stopWork success'); 120e41f4b71Sopenharmony_ci } catch (error) { 121e41f4b71Sopenharmony_ci console.error(`workschedulerLog stopWork failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`); 122e41f4b71Sopenharmony_ci } 123e41f4b71Sopenharmony_ci``` 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci## workScheduler.getWorkStatus 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_cigetWorkStatus(workId: number, callback : AsyncCallback\<WorkInfo>): void 128e41f4b71Sopenharmony_ci 129e41f4b71Sopenharmony_ci通过workId获取延迟任务,使用Callback异步回调。 130e41f4b71Sopenharmony_ci 131e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci**参数**: 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 136e41f4b71Sopenharmony_ci| -------- | ------------------------------------- | ---- | ---------------------------------------- | 137e41f4b71Sopenharmony_ci| workId | number | 是 | 延迟任务Id。 | 138e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[WorkInfo](#workinfo)> | 是 | 回调函数。如果workId有效,则返回从WorkSchedulerService获取的任务,否则抛出异常。 | 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci**错误码**: 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 145e41f4b71Sopenharmony_ci| ---- | --------------------- | 146e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: Parameter verification failed. | 147e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 148e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 149e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 150e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_ci**示例**: 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci```ts 155e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci workScheduler.getWorkStatus(50, (error: BusinessError, res: workScheduler.WorkInfo) => { 158e41f4b71Sopenharmony_ci if (error) { 159e41f4b71Sopenharmony_ci console.error(`workschedulerLog getWorkStatus failed. code is ${error.code} message is ${error.message}`); 160e41f4b71Sopenharmony_ci } else { 161e41f4b71Sopenharmony_ci console.info(`workschedulerLog getWorkStatus success, ${JSON.stringify(res)}`); 162e41f4b71Sopenharmony_ci } 163e41f4b71Sopenharmony_ci }); 164e41f4b71Sopenharmony_ci``` 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci## workScheduler.getWorkStatus 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_cigetWorkStatus(workId: number): Promise\<WorkInfo> 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci通过workId获取延迟任务,使用Promise异步回调。 171e41f4b71Sopenharmony_ci 172e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci**参数**: 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 177e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- | 178e41f4b71Sopenharmony_ci| workId | number | 是 | 延迟任务Id。 | 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci**返回值**: 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ci| 类型 | 说明 | 183e41f4b71Sopenharmony_ci| ------------------------------- | ---------------------------------------- | 184e41f4b71Sopenharmony_ci| Promise\<[WorkInfo](#workinfo)> | Promise对象,如果workId有效,则返回从WorkSchedulerService获取的任务,否则抛出异常。 | 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci**错误码**: 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 191e41f4b71Sopenharmony_ci| ---- | --------------------- | 192e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: Parameter verification failed. | 193e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 194e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 195e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 196e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci**示例**: 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci```ts 201e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci workScheduler.getWorkStatus(50).then((res: workScheduler.WorkInfo) => { 204e41f4b71Sopenharmony_ci console.info(`workschedulerLog getWorkStatus success, ${JSON.stringify(res)}`); 205e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 206e41f4b71Sopenharmony_ci console.error(`workschedulerLog getWorkStatus failed. code is ${error.code} message is ${error.message}`); 207e41f4b71Sopenharmony_ci }) 208e41f4b71Sopenharmony_ci``` 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci## workScheduler.obtainAllWorks<sup>deprecated<sup> 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_ciobtainAllWorks(callback : AsyncCallback\<void>) : Array\<WorkInfo> 213e41f4b71Sopenharmony_ci> 从API version 10开始不再维护,建议使用[workScheduler.obtainAllWorks<sup>10+<sup>](#workschedulerobtainallworks10)替代 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci获取当前应用所有的延迟任务,使用Callback异步回调。 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci**参数**: 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 222e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------- | 223e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数,获取成功时,err为undefined,否则为错误对象。 | 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci**错误码**: 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 230e41f4b71Sopenharmony_ci| ---- | --------------------- | 231e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 232e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 233e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 234e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 235e41f4b71Sopenharmony_ci 236e41f4b71Sopenharmony_ci## workScheduler.obtainAllWorks<sup>10+<sup> 237e41f4b71Sopenharmony_ci 238e41f4b71Sopenharmony_ciobtainAllWorks(callback : AsyncCallback<Array<WorkInfo>>): void 239e41f4b71Sopenharmony_ci 240e41f4b71Sopenharmony_ci获取当前应用所有的延迟任务,使用Callback异步回调。 241e41f4b71Sopenharmony_ci 242e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci**参数**: 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 247e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------- | 248e41f4b71Sopenharmony_ci| callback | AsyncCallback<Array<WorkInfo>> | 是 | 回调函数,获取成功时,err为undefined,否则为错误对象。 | 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci**错误码**: 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)。 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 255e41f4b71Sopenharmony_ci| ---- | --------------------- | 256e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 257e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 258e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 259e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci**示例**: 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci```ts 264e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_ci workScheduler.obtainAllWorks((error: BusinessError, res: Array<workScheduler.WorkInfo>) =>{ 267e41f4b71Sopenharmony_ci if (error) { 268e41f4b71Sopenharmony_ci console.error(`workschedulerLog obtainAllWorks failed. code is ${error.code} message is ${error.message}`); 269e41f4b71Sopenharmony_ci } else { 270e41f4b71Sopenharmony_ci console.info(`workschedulerLog obtainAllWorks success, data is: ${JSON.stringify(res)}`); 271e41f4b71Sopenharmony_ci } 272e41f4b71Sopenharmony_ci }); 273e41f4b71Sopenharmony_ci``` 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci## workScheduler.obtainAllWorks 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ciobtainAllWorks(): Promise\<Array\<WorkInfo>> 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci获取当前应用所有的延迟任务,使用Promise异步回调。 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci**返回值**: 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_ci| 类型 | 说明 | 286e41f4b71Sopenharmony_ci| -------------------------------------- | ------------------------------ | 287e41f4b71Sopenharmony_ci| Promise<Array\<[WorkInfo](#workinfo)>> | Promise对象,返回当前应用所有的延迟任务。 | 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci**错误码**: 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 294e41f4b71Sopenharmony_ci| ---- | --------------------- | 295e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 296e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 297e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 298e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci**示例**: 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci```ts 303e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci workScheduler.obtainAllWorks().then((res: Array<workScheduler.WorkInfo>) => { 306e41f4b71Sopenharmony_ci console.info(`workschedulerLog obtainAllWorks success, data is: ${JSON.stringify(res)}`); 307e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 308e41f4b71Sopenharmony_ci console.error(`workschedulerLog obtainAllWorks failed. code is ${error.code} message is ${error.message}`); 309e41f4b71Sopenharmony_ci }) 310e41f4b71Sopenharmony_ci``` 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci## workScheduler.stopAndClearWorks 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_cistopAndClearWorks(): void 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci停止和取消当前应用所有的延迟任务。 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 319e41f4b71Sopenharmony_ci 320e41f4b71Sopenharmony_ci**错误码**: 321e41f4b71Sopenharmony_ci 322e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 325e41f4b71Sopenharmony_ci| ---- | --------------------- | 326e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 327e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 328e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 329e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 330e41f4b71Sopenharmony_ci 331e41f4b71Sopenharmony_ci**示例**: 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci```ts 334e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 335e41f4b71Sopenharmony_ci 336e41f4b71Sopenharmony_ci try{ 337e41f4b71Sopenharmony_ci workScheduler.stopAndClearWorks(); 338e41f4b71Sopenharmony_ci console.info(`workschedulerLog stopAndClearWorks success`); 339e41f4b71Sopenharmony_ci } catch (error) { 340e41f4b71Sopenharmony_ci console.error(`workschedulerLog stopAndClearWorks failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`); 341e41f4b71Sopenharmony_ci } 342e41f4b71Sopenharmony_ci``` 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_ci## workScheduler.isLastWorkTimeOut<sup>deprecated<sup> 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ciisLastWorkTimeOut(workId: number, callback : AsyncCallback\<void>): boolean 347e41f4b71Sopenharmony_ci 348e41f4b71Sopenharmony_ci> 从API version 10开始不再维护,建议使用[workScheduler.isLastWorkTimeOut<sup>10+<sup>](#workschedulerislastworktimeout10)替代 349e41f4b71Sopenharmony_ci 350e41f4b71Sopenharmony_ci检查延迟任务的最后一次执行是否超时,使用Callback异步回调。 351e41f4b71Sopenharmony_ci 352e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 353e41f4b71Sopenharmony_ci 354e41f4b71Sopenharmony_ci**参数**: 355e41f4b71Sopenharmony_ci 356e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 357e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------------- | 358e41f4b71Sopenharmony_ci| workId | number | 是 | 指定延迟任务的Id。 | 359e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。 | 360e41f4b71Sopenharmony_ci 361e41f4b71Sopenharmony_ci**错误码**: 362e41f4b71Sopenharmony_ci 363e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 364e41f4b71Sopenharmony_ci 365e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 366e41f4b71Sopenharmony_ci| ---- | --------------------- | 367e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: Parameter verification failed. | 368e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 369e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 370e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 371e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci## workScheduler.isLastWorkTimeOut<sup>10+<sup> 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ciisLastWorkTimeOut(workId: number, callback : AsyncCallback\<boolean>): void 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci检查延迟任务的最后一次执行是否超时,使用Callback异步回调。 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 380e41f4b71Sopenharmony_ci 381e41f4b71Sopenharmony_ci**参数**: 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 384e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ---------------------------------------- | 385e41f4b71Sopenharmony_ci| workId | number | 是 | 指定延迟任务的Id。 | 386e41f4b71Sopenharmony_ci| callback | AsyncCallback\<boolean> | 是 | 回调函数。 | 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci**错误码**: 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 391e41f4b71Sopenharmony_ci 392e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 393e41f4b71Sopenharmony_ci| ---- | --------------------- | 394e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: Parameter verification failed. | 395e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 396e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 397e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 398e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci**示例**: 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci```ts 403e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci workScheduler.isLastWorkTimeOut(500, (error: BusinessError, res: boolean) =>{ 406e41f4b71Sopenharmony_ci if (error) { 407e41f4b71Sopenharmony_ci console.error(`workschedulerLog isLastWorkTimeOut failed. code is ${error.code} message is ${error.message}`); 408e41f4b71Sopenharmony_ci } else { 409e41f4b71Sopenharmony_ci console.info(`workschedulerLog isLastWorkTimeOut success, data is: ${res}`); 410e41f4b71Sopenharmony_ci } 411e41f4b71Sopenharmony_ci }); 412e41f4b71Sopenharmony_ci``` 413e41f4b71Sopenharmony_ci 414e41f4b71Sopenharmony_ci## workScheduler.isLastWorkTimeOut 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ciisLastWorkTimeOut(workId: number): Promise\<boolean> 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci检查延迟任务的最后一次执行是否超时,使用Promise形式返回。 419e41f4b71Sopenharmony_ci 420e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci**参数**: 423e41f4b71Sopenharmony_ci 424e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 425e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------- | 426e41f4b71Sopenharmony_ci| workId | number | 是 | 指定延迟任务的Id。 | 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_ci**返回值**: 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci| 类型 | 说明 | 431e41f4b71Sopenharmony_ci| ----------------- | ---------------------------------------- | 432e41f4b71Sopenharmony_ci| Promise\<boolean> | Promise对象。返回true表示指定任务的最后一次执行超时,false表示未超时。 | 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci**错误码**: 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[workScheduler错误码](errorcode-workScheduler.md)和[通用错误码](../errorcode-universal.md)。 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 439e41f4b71Sopenharmony_ci| ---- | --------------------- | 440e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: Parameter verification failed. | 441e41f4b71Sopenharmony_ci| 9700001 | Memory operation failed. | 442e41f4b71Sopenharmony_ci| 9700002 | Parcel operation failed. | 443e41f4b71Sopenharmony_ci| 9700003 | System service operation failed. | 444e41f4b71Sopenharmony_ci| 9700004 | Check on workInfo failed. | 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci**示例**: 447e41f4b71Sopenharmony_ci 448e41f4b71Sopenharmony_ci```ts 449e41f4b71Sopenharmony_ci import { BusinessError } from '@kit.BasicServicesKit'; 450e41f4b71Sopenharmony_ci 451e41f4b71Sopenharmony_ci workScheduler.isLastWorkTimeOut(500) 452e41f4b71Sopenharmony_ci .then((res: boolean) => { 453e41f4b71Sopenharmony_ci console.info(`workschedulerLog isLastWorkTimeOut success, data is: ${res}`); 454e41f4b71Sopenharmony_ci }) 455e41f4b71Sopenharmony_ci .catch((error: BusinessError) => { 456e41f4b71Sopenharmony_ci console.error(`workschedulerLog isLastWorkTimeOut failed. code is ${error.code} message is ${error.message}`); 457e41f4b71Sopenharmony_ci }); 458e41f4b71Sopenharmony_ci``` 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci## WorkInfo 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci延迟任务的具体信息。 463e41f4b71Sopenharmony_ci 464e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 465e41f4b71Sopenharmony_ci 466e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 467e41f4b71Sopenharmony_ci| --------------- | --------------------------------- | ---- | ---------------- | 468e41f4b71Sopenharmony_ci| workId | number | 是 | 延迟任务ID。 | 469e41f4b71Sopenharmony_ci| bundleName | string | 是 | 延迟任务所在应用的包名。 | 470e41f4b71Sopenharmony_ci| abilityName | string | 是 | 包内ability名称。 | 471e41f4b71Sopenharmony_ci| networkType | [NetworkType](#networktype) | 否 | 网络类型。 | 472e41f4b71Sopenharmony_ci| isCharging | boolean | 否 | 是否充电。<br>- true表示充电触发延迟回调,false表示不充电触发延迟回调。| 473e41f4b71Sopenharmony_ci| chargerType | [ChargingType](#chargingtype) | 否 | 充电类型。 | 474e41f4b71Sopenharmony_ci| batteryLevel | number | 否 | 电量。 | 475e41f4b71Sopenharmony_ci| batteryStatus | [BatteryStatus](#batterystatus) | 否 | 电池状态。 | 476e41f4b71Sopenharmony_ci| storageRequest | [StorageRequest](#storagerequest) | 否 | 存储状态。 | 477e41f4b71Sopenharmony_ci| isRepeat | boolean | 否 | 是否循环任务。<br>- true表示循环任务,false表示非循环任务。 | 478e41f4b71Sopenharmony_ci| repeatCycleTime | number | 否 | 循环间隔,单位为毫秒。 | 479e41f4b71Sopenharmony_ci| repeatCount | number | 否 | 循环次数。 | 480e41f4b71Sopenharmony_ci| isPersisted | boolean | 否 | 是否持久化保存工作。<br>- true表示持久化保存工作。false表示非持久化保存工作。| 481e41f4b71Sopenharmony_ci| isDeepIdle | boolean | 否 | 是否要求设备进入空闲状态。<br>- true表示需要,false表示不需要。 | 482e41f4b71Sopenharmony_ci| idleWaitTime | number | 否 | 空闲等待时间,单位为毫秒。 | 483e41f4b71Sopenharmony_ci| parameters | Record<string, number \| string \| boolean> | 否 | 携带参数信息。 | 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci## NetworkType 486e41f4b71Sopenharmony_ci 487e41f4b71Sopenharmony_ci触发延迟回调的网络类型。 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 490e41f4b71Sopenharmony_ci 491e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 492e41f4b71Sopenharmony_ci| ---------------------- | ---- | ----------------------- | 493e41f4b71Sopenharmony_ci| NETWORK_TYPE_ANY | 0 | 表示这个触发条件是任何类型的网络连接。 | 494e41f4b71Sopenharmony_ci| NETWORK_TYPE_MOBILE | 1 | 表示这个触发条件是Mobile网络连接。 | 495e41f4b71Sopenharmony_ci| NETWORK_TYPE_WIFI | 2 | 表示这个触发条件是Wifi类型的网络连接。 | 496e41f4b71Sopenharmony_ci| NETWORK_TYPE_BLUETOOTH | 3 | 表示这个触发条件是Bluetooth网络连接。 | 497e41f4b71Sopenharmony_ci| NETWORK_TYPE_WIFI_P2P | 4 | 表示这个触发条件是Wifi P2P网络连接。 | 498e41f4b71Sopenharmony_ci| NETWORK_TYPE_ETHERNET | 5 | 表示这个触发条件是有线网络连接。 | 499e41f4b71Sopenharmony_ci 500e41f4b71Sopenharmony_ci## ChargingType 501e41f4b71Sopenharmony_ci 502e41f4b71Sopenharmony_ci触发延迟回调的充电类型。 503e41f4b71Sopenharmony_ci 504e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 505e41f4b71Sopenharmony_ci 506e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 507e41f4b71Sopenharmony_ci| ------------------------- | ---- | -------------------- | 508e41f4b71Sopenharmony_ci| CHARGING_PLUGGED_ANY | 0 | 表示这个触发条件是任何类型的充电器连接。 | 509e41f4b71Sopenharmony_ci| CHARGING_PLUGGED_AC | 1 | 表示这个触发条件是直流充电器连接。 | 510e41f4b71Sopenharmony_ci| CHARGING_PLUGGED_USB | 2 | 表示这个触发条件是USB充连接。 | 511e41f4b71Sopenharmony_ci| CHARGING_PLUGGED_WIRELESS | 3 | 表示这个触发条件是无线充电器连接。 | 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci## BatteryStatus 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci触发延迟回调的电池状态。 516e41f4b71Sopenharmony_ci 517e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 518e41f4b71Sopenharmony_ci 519e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 520e41f4b71Sopenharmony_ci| -------------------------- | ---- | -------------------------- | 521e41f4b71Sopenharmony_ci| BATTERY_STATUS_LOW | 0 | 表示这个触发条件是低电告警。 | 522e41f4b71Sopenharmony_ci| BATTERY_STATUS_OKAY | 1 | 表示这个触发条件是从低电恢复到正常电量。 | 523e41f4b71Sopenharmony_ci| BATTERY_STATUS_LOW_OR_OKAY | 2 | 表示这个触发条件是从低电恢复到正常电量或者低电告警。 | 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci## StorageRequest 526e41f4b71Sopenharmony_ci 527e41f4b71Sopenharmony_ci触发延迟回调的存储状态。 528e41f4b71Sopenharmony_ci 529e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.ResourceSchedule.WorkScheduler 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 532e41f4b71Sopenharmony_ci| ------------------------- | ---- | ------------------------------ | 533e41f4b71Sopenharmony_ci| STORAGE_LEVEL_LOW | 0 | 表示这个触发条件是存储空间不足。 | 534e41f4b71Sopenharmony_ci| STORAGE_LEVEL_OKAY | 1 | 表示这个触发条件是从存储空间不足恢复到正常。 | 535e41f4b71Sopenharmony_ci| STORAGE_LEVEL_LOW_OR_OKAY | 2 | 表示这个触发条件是存储空间不足或者从存储空间不足恢复到正常。 |