• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.resourceschedule.backgroundTaskManager (后台任务管理)
2
3本模块提供后台任务管理能力。
4
5当应用或业务模块处于后台(无可见界面)时,如果有需要继续执行或者后续执行的业务,可基于业务类型,申请短时任务延迟挂起(Suspend)或者长时任务避免进入挂起状态。
6
7应用有不可中断且短时间能完成的任务时(如,用户在文件管理器上点击垃圾文件清理,若清理未完成时退到后台,文件管理器需要申请短时任务完成清理),可以使用短时任务机制。
8
9应用中存在用户能够直观感受到的且需要一直在后台运行的业务时(如,后台播放音乐),可以使用长时任务机制。
10
11对于系统特权应用,提供独立的能效资源申请接口。系统特权应用如果需要使用特定的系统资源,例如在被挂起期间仍然能够收到系统公共事件,可以使用能效资源申请接口。
12
13>  **说明:**
14> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
15
16
17## 导入模块
18
19```js
20import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
21```
22
23## backgroundTaskManager.requestSuspendDelay
24
25requestSuspendDelay(reason: string, callback: Callback<void>): DelaySuspendInfo
26
27后台应用申请延迟挂起。
28
29延迟挂起时间一般情况下默认值为3分钟,低电量(依据系统低电量广播)时默认值为1分钟。
30
31**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
32
33**参数**:
34
35| 参数名      | 类型                   | 必填   | 说明                             |
36| -------- | -------------------- | ---- | ------------------------------ |
37| reason   | string               | 是    | 延迟挂起申请的原因。                     |
38| callback | Callback<void> | 是    | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
39
40**返回值**:
41
42| 类型                                    | 说明        |
43| ------------------------------------- | --------- |
44| [DelaySuspendInfo](#delaysuspendinfo) | 返回延迟挂起信息。 |
45
46**错误码**:
47
48以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
49
50| 错误码ID  | 错误信息             |
51| ---- | --------------------- |
52| 9800001 | Memory operation failed. |
53| 9800002 | Parcel operation failed. |
54| 9800003 | Inner transact failed. | |
55| 9800004 | System service operation failed. |
56| 9900001 | Caller information verification failed. |
57| 9900002 | Background task verification failed. |
58
59**示例**:
60
61  ```js
62  import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
63
64  let myReason = 'test requestSuspendDelay';
65  try {
66    let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => {
67        console.info("Request suspension delay will time out.");
68    })
69    var id = delayInfo.requestId;
70    var time = delayInfo.actualDelayTime;
71    console.info("The requestId is: " + id);
72    console.info("The actualDelayTime is: " + time);
73  } catch (error) {
74    console.error(`requestSuspendDelay failed. code is ${error.code} message is ${error.message}`);
75  }
76  ```
77
78
79## backgroundTaskManager.getRemainingDelayTime
80
81getRemainingDelayTime(requestId: number, callback: AsyncCallback<number>): void
82
83获取应用程序进入挂起状态前的剩余时间,使用callback形式返回。
84
85**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
86
87**参数**:
88
89| 参数名       | 类型                          | 必填   | 说明                                       |
90| --------- | --------------------------- | ---- | ---------------------------------------- |
91| requestId | number                      | 是    | 延迟挂起的请求ID。                               |
92| callback  | AsyncCallback<number> | 是    | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
93
94**错误码**:
95
96以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
97
98| 错误码ID  | 错误信息             |
99| ---- | --------------------- |
100| 9800001 | Memory operation failed. |
101| 9800002 | Parcel operation failed. |
102| 9800003 | Inner transact failed. | |
103| 9800004 | System service operation failed. |
104| 9900001 | Caller information verification failed. |
105| 9900002 | Background task verification failed. |
106
107
108**示例**:
109
110  ```js
111  import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
112
113  let id = 1;
114  try {
115    backgroundTaskManager.getRemainingDelayTime(id, (error, res) => {
116        if(error) {
117            console.error(`callback => Operation getRemainingDelayTime failed. code is ${error.code} message is ${error.message}`);
118        } else {
119            console.log('callback => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
120        }
121    })
122  } catch (error) {
123    console.error(`callback => Operation getRemainingDelayTime failed. code is ${error.code} message is ${error.message}`);
124  }
125  ```
126
127
128## backgroundTaskManager.getRemainingDelayTime
129
130getRemainingDelayTime(requestId: number): Promise<number>
131
132获取应用程序进入挂起状态前的剩余时间,使用Promise形式返回。
133
134
135
136**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
137
138**参数**:
139
140| 参数名       | 类型     | 必填   | 说明         |
141| --------- | ------ | ---- | ---------- |
142| requestId | number | 是    | 延迟挂起的请求ID。 |
143
144**返回值**:
145
146| 类型                    | 说明                                       |
147| --------------------- | ---------------------------------------- |
148| Promise<number> | 指定的Promise回调方法。返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
149
150**错误码**:
151
152以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
153
154| 错误码ID  | 错误信息             |
155| ---- | --------------------- |
156| 9800001 | Memory operation failed. |
157| 9800002 | Parcel operation failed. |
158| 9800003 | Inner transact failed. | |
159| 9800004 | System service operation failed. |
160| 9900001 | Caller information verification failed. |
161| 9900002 | Background task verification failed. |
162
163**示例**:
164
165  ```js
166  import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
167
168  let id = 1;
169  try {
170    backgroundTaskManager.getRemainingDelayTime(id).then( res => {
171        console.log('promise => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
172    }).catch( error => {
173        console.error(`promise => Operation getRemainingDelayTime failed. code is ${error.code} message is ${error.message}`);
174    })
175  } catch (error) {
176    console.error(`promise => Operation getRemainingDelayTime failed. code is ${error.code} message is ${error.message}`);
177  }
178  ```
179
180
181## backgroundTaskManager.cancelSuspendDelay
182
183cancelSuspendDelay(requestId: number): void
184
185取消延迟挂起。
186
187**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
188
189**参数**:
190
191| 参数名       | 类型     | 必填   | 说明         |
192| --------- | ------ | ---- | ---------- |
193| requestId | number | 是    | 延迟挂起的请求ID。 |
194
195**错误码**:
196
197以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
198
199| 错误码ID  | 错误信息             |
200| ---- | --------------------- |
201| 9800001 | Memory operation failed. |
202| 9800002 | Parcel operation failed. |
203| 9800003 | Inner transact failed. | |
204| 9800004 | System service operation failed. |
205| 9900001 | Caller information verification failed. |
206| 9900002 | Background task verification failed. |
207
208**示例**:
209
210  ```js
211  import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
212
213  let id = 1;
214  try {
215    backgroundTaskManager.cancelSuspendDelay(id);
216  } catch (error) {
217    console.error(`cancelSuspendDelay failed. code is ${error.code} message is ${error.message}`);
218  }
219  ```
220
221
222## backgroundTaskManager.startBackgroundRunning
223
224startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback<void>): void
225
226向系统申请长时任务,使用callback形式返回结果。
227
228**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING
229
230**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
231
232**参数**:
233
234| 参数名       | 类型                                 | 必填   | 说明                                       |
235| --------- | ---------------------------------- | ---- | ---------------------------------------- |
236| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-context.md)。 |
237| bgMode    | [BackgroundMode](#backgroundmode) | 是    | 向系统申请的后台模式。                              |
238| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击后跳转的界面。                 |
239| callback  | AsyncCallback&lt;void&gt;          | 是    | callback形式返回启动长时任务的结果。                   |
240
241**错误码**:
242
243以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
244
245| 错误码ID  | 错误信息             |
246| ---- | --------------------- |
247| 9800001 | Memory operation failed. |
248| 9800002 | Parcel operation failed. |
249| 9800003 | Inner transact failed. | |
250| 9800004 | System service operation failed. |
251| 9800005 | Background task verification failed. |
252| 9800006 | Notification verification failed. |
253| 9800007 | Task storage failed. |
254
255**示例**:
256
257```js
258import UIAbility from '@ohos.app.ability.UIAbility';
259import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
260import wantAgent from '@ohos.app.ability.wantAgent';
261
262function callback(error, data) {
263    if (error) {
264        console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
265    } else {
266        console.info("Operation startBackgroundRunning succeeded");
267    }
268}
269
270export default class EntryAbility extends UIAbility {
271    onCreate(want, launchParam) {
272        let wantAgentInfo = {
273            wants: [
274                {
275                    bundleName: "com.example.myapplication",
276                    abilityName: "EntryAbility"
277                }
278            ],
279            operationType: wantAgent.OperationType.START_ABILITY,
280            requestCode: 0,
281            wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
282        };
283
284        try {
285            wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
286                try {
287                    backgroundTaskManager.startBackgroundRunning(this.context,
288                        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
289                } catch (error) {
290                    console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
291                }
292            });
293        } catch (error) {
294            console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`);
295        }
296    }
297};
298```
299
300## backgroundTaskManager.startBackgroundRunning
301
302startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise&lt;void&gt;
303
304向系统申请长时任务,使用promise形式返回结果。
305
306**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING
307
308**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
309
310**参数**:
311
312| 参数名       | 类型                                 | 必填   | 说明                                       |
313| --------- | ---------------------------------- | ---- | ---------------------------------------- |
314| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-context.md)。 |
315| bgMode    | [BackgroundMode](#backgroundmode) | 是    | 向系统申请的后台模式。                              |
316| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击跳转的界面。                  |
317
318**返回值**:
319
320| 类型             | 说明               |
321| -------------- | ---------------- |
322| Promise\<void> | 使用Promise形式返回结果。 |
323
324**错误码**:
325
326以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
327
328| 错误码ID  | 错误信息             |
329| ---- | --------------------- |
330| 9800001 | Memory operation failed. |
331| 9800002 | Parcel operation failed. |
332| 9800003 | Inner transact failed. | |
333| 9800004 | System service operation failed. |
334| 9800005 | Background task verification failed. |
335| 9800006 | Notification verification failed. |
336| 9800007 | Task storage failed. |
337
338**示例**:
339
340```js
341import UIAbility from '@ohos.app.ability.UIAbility';
342import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
343import wantAgent from '@ohos.app.ability.wantAgent';
344
345export default class EntryAbility extends UIAbility {
346    onCreate(want, launchParam) {
347        let wantAgentInfo = {
348            wants: [
349                {
350                    bundleName: "com.example.myapplication",
351                    abilityName: "EntryAbility"
352                }
353            ],
354            operationType: wantAgent.OperationType.START_ABILITY,
355            requestCode: 0,
356            wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
357        };
358
359        try {
360            wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
361                try {
362                    backgroundTaskManager.startBackgroundRunning(this.context,
363                        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
364                        console.info("Operation startBackgroundRunning succeeded");
365                    }).catch((error) => {
366                        console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
367                    });
368                } catch (error) {
369                    console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
370                }
371            });
372        } catch (error) {
373            console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`);
374        }
375    }
376};
377```
378
379## backgroundTaskManager.stopBackgroundRunning
380
381stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): void
382
383向系统申请取消长时任务,使用callback形式返回结果。
384
385**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
386
387**参数**:
388
389| 参数名      | 类型                        | 必填   | 说明                                       |
390| -------- | ------------------------- | ---- | ---------------------------------------- |
391| context  | Context                   | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-context.md)。 |
392| callback | AsyncCallback&lt;void&gt; | 是    | callback形式返回启动长时任务的结果。                   |
393
394**错误码**:
395
396以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
397
398| 错误码ID  | 错误信息             |
399| ---- | --------------------- |
400| 9800001 | Memory operation failed. |
401| 9800002 | Parcel operation failed. |
402| 9800003 | Inner transact failed. | |
403| 9800004 | System service operation failed. |
404| 9800005 | Background task verification failed. |
405| 9800006 | Notification verification failed. |
406| 9800007 | Task storage failed. |
407
408**示例**:
409
410```js
411import UIAbility from '@ohos.app.ability.UIAbility';
412import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
413
414function callback(error, data) {
415    if (error) {
416        console.error(`Operation stopBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
417    } else {
418        console.info("Operation stopBackgroundRunning succeeded");
419    }
420}
421
422export default class EntryAbility extends UIAbility {
423    onCreate(want, launchParam) {
424        try {
425            backgroundTaskManager.stopBackgroundRunning(this.context, callback);
426        } catch (error) {
427            console.error(`Operation stopBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
428        }
429    }
430};
431```
432
433## backgroundTaskManager.stopBackgroundRunning
434
435stopBackgroundRunning(context: Context): Promise&lt;void&gt;
436
437向系统申请取消长时任务,使用promise形式返回结果。
438
439
440
441**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
442
443**参数**:
444
445| 参数名     | 类型      | 必填   | 说明                                       |
446| ------- | ------- | ---- | ---------------------------------------- |
447| context | Context | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](js-apis-inner-application-context.md)。 |
448
449**返回值**:
450
451| 类型             | 说明               |
452| -------------- | ---------------- |
453| Promise\<void> | 使用Promise形式返回结果。 |
454
455**错误码**:
456
457以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
458
459| 错误码ID  | 错误信息             |
460| ---- | --------------------- |
461| 9800001 | Memory operation failed. |
462| 9800002 | Parcel operation failed. |
463| 9800003 | Inner transact failed. | |
464| 9800004 | System service operation failed. |
465| 9800005 | Background task verification failed. |
466| 9800006 | Notification verification failed. |
467| 9800007 | Task storage failed. |
468
469**示例**:
470
471```js
472import UIAbility from '@ohos.app.ability.UIAbility';
473import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
474
475export default class EntryAbility extends UIAbility {
476    onCreate(want, launchParam) {
477        try {
478            backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
479                console.info("Operation stopBackgroundRunning succeeded");
480            }).catch((error) => {
481                console.error(`Operation stopBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
482            });
483        } catch (error) {
484            console.error(`Operation stopBackgroundRunning failed. code is ${error.code} message is ${error.message}`);
485        }
486    }
487};
488```
489
490## backgroundTaskManager.applyEfficiencyResources
491
492applyEfficiencyResources(request: [EfficiencyResourcesRequest](#efficiencyresourcesrequest)): void
493
494向系统申请能效资源。
495进程和它所属的应用可以同时申请某一类资源,例如CPU资源,但是应用释放资源的时候会将进程的资源一起释放。
496
497**系统能力**: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
498
499**系统API**: 此接口为系统接口。
500
501**参数**:
502
503| 参数名     | 类型      | 必填   | 说明                                       |
504| ------- | ------- | ---- | ---------------------------------------- |
505| request | [EfficiencyResourcesRequest](#efficiencyresourcesrequest) | 是    | 请求的必要信息。包括资源类型,超时时间等信息。详见[EfficiencyResourcesRequest](#efficiencyresourcesrequest)。 |
506
507
508**错误码**:
509
510以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
511
512| 错误码ID  | 错误信息             |
513| ---- | --------------------- |
514| 9800001 | Memory operation failed. |
515| 9800002 | Parcel operation failed. |
516| 9800003 | Inner transact failed. | |
517| 9800004 | System service operation failed. |
518| 18700001 | Caller information verification failed. |
519
520**示例**:
521
522```js
523import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
524
525let request = {
526    resourceTypes: backgroundTaskManager.ResourceType.CPU,
527    isApply: true,
528    timeOut: 0,
529    reason: "apply",
530    isPersist: true,
531    isProcess: false,
532};
533try {
534    backgroundTaskManager.applyEfficiencyResources(request);
535    console.info("applyEfficiencyResources success. ");
536} catch (error) {
537    console.error(`applyEfficiencyResources failed. code is ${error.code} message is ${error.message}`);
538}
539```
540
541## backgroundTaskManager.resetAllEfficiencyResources
542
543resetAllEfficiencyResources(): void
544
545释放所有已经申请的资源。
546
547**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
548
549**系统API**: 此接口为系统接口。
550
551**错误码**:
552
553以下错误码的详细介绍请参见[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](../errorcodes/errorcode-backgroundTaskMgr.md)错误码。
554
555| 错误码ID  | 错误信息             |
556| ---- | --------------------- |
557| 9800001 | Memory operation failed. |
558| 9800002 | Parcel operation failed. |
559| 9800003 | Inner transact failed. | |
560| 9800004 | System service operation failed. |
561| 18700001 | Caller information verification failed. |
562
563**示例**:
564
565```js
566import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager';
567
568try {
569    backgroundTaskManager.resetAllEfficiencyResources();
570} catch (error) {
571    console.error(`resetAllEfficiencyResources failed. code is ${error.code} message is ${error.message}`);
572}
573```
574
575## DelaySuspendInfo
576
577延迟挂起信息。
578
579**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
580
581| 名称             | 类型     | 必填   | 说明                                       |
582| --------------- | ------ | ---- | ---------------------------------------- |
583| requestId       | number | 是    | 延迟挂起的请求ID。                               |
584| actualDelayTime | number | 是    | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 |
585
586
587## BackgroundMode
588
589**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
590
591| 名称                     | 值  | 说明                    |
592| ----------------------- | ---- | --------------------- |
593| DATA_TRANSFER           | 1    | 数据传输。                  |
594| AUDIO_PLAYBACK          | 2    | 音频播放。                  |
595| AUDIO_RECORDING         | 3    | 录音。                    |
596| LOCATION                | 4    | 定位导航。                  |
597| BLUETOOTH_INTERACTION   | 5    | 蓝牙相关。                  |
598| MULTI_DEVICE_CONNECTION | 6    | 多设备互联。                 |
599| WIFI_INTERACTION        | 7    | WLAN相关(此接口为系统接口)。 |
600| VOIP                    | 8    | 音视频通话(此接口为系统接口)。  |
601| TASK_KEEPING            | 9    | 计算任务(仅在特定设备生效)。        |
602
603## EfficiencyResourcesRequest
604
605能效资源申请参数。
606
607**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
608
609**系统API**: 此接口为系统接口。
610
611| 名称             | 类型     | 必填   | 说明                                       |
612| --------------- | ------ | ---- | ---------------------------------------- |
613| resourceTypes   | number  | 是    | 申请的资源类型。                               |
614| isApply         | boolean | 是    | 申请资源或者是释放资源。          |
615| timeOut         | number  | 是    | 资源的使用时间,以毫秒为单位。                |
616| isPersist       | boolean | 否    | 是否永久持有资源,如果是true,那么timeOut就无效。    |
617| isProcess       | boolean | 否    | 应用申请或者是进程申请。          |
618| reason          | string  | 是    | 申请资源的原因。                |
619
620## ResourceType
621
622能效资源类型。
623
624**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
625
626**系统API**: 此接口为系统接口。
627
628| 名称                     | 值  | 说明                    |
629| ----------------------- | ---- | --------------------- |
630| CPU                     | 1    | CPU资源,申请后不被挂起。             |
631| COMMON_EVENT            | 2    | 公共事件,申请后挂起状态下不被代理掉。  |
632| TIMER                   | 4    | 计时器,申请后挂起状态下不被代理掉。    |
633| WORK_SCHEDULER          | 8    | 延迟任务,申请后有更长的执行时间。      |
634| BLUETOOTH               | 16   | 蓝牙相关,申请后挂起状态下不被代理掉。  |
635| GPS                     | 32   | GPS相关,申请后挂起状态下不被代理掉。  |
636| AUDIO                   | 64   | 音频资源,申请后挂起状态下不被代理掉。 |
637
638