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<void> | 是 | 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<void> 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<void>): 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<void> | 是 | 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<void> 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