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&lt;Array&lt;WorkInfo&gt;&gt;): 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&lt;Array&lt;WorkInfo&gt;&gt; | 是    | 回调函数,获取成功时,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    | 表示这个触发条件是存储空间不足或者从存储空间不足恢复到正常。 |