js-apis-backgroundTaskManager.md 21.5 KB
Newer Older
廖康康 已提交
1 2
# 后台任务管理

廖康康 已提交
3
本模块提供后台任务管理能力。
廖康康 已提交
4

廖康康 已提交
5 6
当应用或业务模块处于后台(无可见界面)时,如果有需要继续执行或者后续执行的业务,可基于业务类型,申请短时任务延迟挂起(Suspend)或者长时任务避免进入挂起状态。

廖康康 已提交
7
应用有不可中断且短时间能完成的任务时(如,用户在文件管理器上点击垃圾文件清理,若清理未完成时退到后台,文件管理器需要申请短时任务完成清理),可以使用短时任务机制。
廖康康 已提交
8 9

应用中存在用户能够直观感受到的且需要一直在后台运行的业务时(如,后台播放音乐),可以使用长时任务机制。
廖康康 已提交
10

Z
zhangxin_T 已提交
11
对于系统特权应用,提供独立的能效资源申请接口。系统特权应用如果需要使用特定的系统资源,例如需要在被挂起期间仍然能够收到系统公共事件,可以使用能效资源申请接口。
Z
Zhao-PengFei35 已提交
12

H
HelloCrease 已提交
13
>  **说明:**
廖康康 已提交
14 15 16 17 18
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

H
HelloCrease 已提交
19
```js
廖康康 已提交
20 21 22 23 24 25 26 27 28 29
import backgroundTaskManager from '@ohos.backgroundTaskManager';  
```


## backgroundTaskManager.requestSuspendDelay

requestSuspendDelay(reason: string, callback: Callback<void>): DelaySuspendInfo

后台应用申请延迟挂起。

Z
zhangxin_T 已提交
30
延迟挂起时间一般情况下默认值为180000毫秒,低电量(依据系统低电量广播)时默认值为60000毫秒。
廖康康 已提交
31

Z
zhangxin_T 已提交
32 33
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask

Z
zhangxin_T 已提交
34
**参数**
H
HelloCrease 已提交
35 36 37 38
| 参数名      | 类型                   | 必填   | 说明                             |
| -------- | -------------------- | ---- | ------------------------------ |
| reason   | string               | 是    | 延迟挂起申请的原因。                     |
| callback | Callback<void> | 是    | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
廖康康 已提交
39

Z
zhangxin_T 已提交
40
**返回值**
H
HelloCrease 已提交
41 42 43
| 类型                                    | 说明        |
| ------------------------------------- | --------- |
| [DelaySuspendInfo](#delaysuspendinfo) | 返回延迟挂起信息。 |
廖康康 已提交
44

Z
zhangxin_T 已提交
45
**示例**
W
wangqing 已提交
46

Z
zhangxin_T 已提交
47
  ```js
廖康康 已提交
48
  let myReason = 'test requestSuspendDelay';
update  
廖康康 已提交
49
  let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => {
W
wusongqing 已提交
50
      console.info("Request suspension delay will time out.");
廖康康 已提交
51
  })
Z
zhangxin_T 已提交
52 53 54

  let id = delayInfo.requestId;
  let time = delayInfo.actualDelayTime;
W
wangqing 已提交
55 56
  console.info("The requestId is: " + id);
  console.info("The actualDelayTime is: " + time);
廖康康 已提交
57 58 59 60 61 62 63 64 65
  ```


## backgroundTaskManager.getRemainingDelayTime

getRemainingDelayTime(requestId: number, callback: AsyncCallback<number>): void

获取应用程序进入挂起状态前的剩余时间,使用callback形式返回。

Z
zhangxin_T 已提交
66 67
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask

Z
zhangxin_T 已提交
68
**参数**
H
HelloCrease 已提交
69 70
| 参数名       | 类型                          | 必填   | 说明                                       |
| --------- | --------------------------- | ---- | ---------------------------------------- |
Z
zhangxin_T 已提交
71
| requestId | number                      | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取 |
H
HelloCrease 已提交
72
| callback  | AsyncCallback<number> | 是    | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
廖康康 已提交
73

Z
zhangxin_T 已提交
74
**示例**
W
wangqing 已提交
75

Z
zhangxin_T 已提交
76
  ```js
Z
zhangxin_T 已提交
77 78
  let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
  backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId, (err, res) => {
廖康康 已提交
79 80
      if(err) {
          console.log('callback => Operation getRemainingDelayTime failed. Cause: ' + err.code);
廖康康 已提交
81
      } else {
廖康康 已提交
82
          console.log('callback => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
廖康康 已提交
83 84 85 86 87 88 89 90 91 92 93
      }
  })
  ```


## backgroundTaskManager.getRemainingDelayTime

getRemainingDelayTime(requestId: number): Promise<number>

获取应用程序进入挂起状态前的剩余时间,使用Promise形式返回。

Z
zhangxin_T 已提交
94 95
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask

Z
zhangxin_T 已提交
96
**参数**
H
HelloCrease 已提交
97 98
| 参数名       | 类型     | 必填   | 说明         |
| --------- | ------ | ---- | ---------- |
Z
zhangxin_T 已提交
99
| requestId | number | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取 |
廖康康 已提交
100

Z
zhangxin_T 已提交
101
**返回值**
H
HelloCrease 已提交
102 103 104
| 类型                    | 说明                                       |
| --------------------- | ---------------------------------------- |
| Promise<number> | 指定的Promise回调方法。返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
廖康康 已提交
105

Z
zhangxin_T 已提交
106 107
**示例**
  ```js
Z
zhangxin_T 已提交
108 109
  let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
  backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId).then( res => {
W
wangqing 已提交
110
      console.log('promise => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
廖康康 已提交
111
  }).catch( err => {
廖康康 已提交
112
      console.log('promise => Operation getRemainingDelayTime failed. Cause: ' + err.code);
廖康康 已提交
113 114 115 116 117 118 119 120 121 122
  })
  ```


## backgroundTaskManager.cancelSuspendDelay

cancelSuspendDelay(requestId: number): void

取消延迟挂起。

Z
zhangxin_T 已提交
123 124
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask

Z
zhangxin_T 已提交
125
**参数**
H
HelloCrease 已提交
126 127
| 参数名       | 类型     | 必填   | 说明         |
| --------- | ------ | ---- | ---------- |
Z
zhangxin_T 已提交
128
| requestId | number | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取 |
廖康康 已提交
129

Z
zhangxin_T 已提交
130 131
**示例**
  ```js
Z
zhangxin_T 已提交
132 133
  let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
  backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId);
廖康康 已提交
134 135 136
  ```


Z
bugfix  
zhangxin_T 已提交
137
## backgroundTaskManager.startBackgroundRunning<sup>8+</sup>
廖康康 已提交
138

Z
zhangxin_T 已提交
139
startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback&lt;void&gt;): void
Z
zhangxin_T 已提交
140 141 142

向系统申请长时任务,使用callback形式返回结果。

Z
zhangxin_T 已提交
143 144
**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING

Z
zhangxin_T 已提交
145 146
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

Z
zhangxin_T 已提交
147
**参数**
H
HelloCrease 已提交
148 149 150 151 152 153
| 参数名       | 类型                                 | 必填   | 说明                                       |
| --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。                              |
| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击后跳转的界面。                 |
| callback  | AsyncCallback&lt;void&gt;          | 是    | callback形式返回启动长时任务的结果。                   |
Z
zhangxin_T 已提交
154

Z
zhangxin_T 已提交
155
**示例**
Z
zhangxin_T 已提交
156 157 158

FA模型示例:

Z
zhangxin_T 已提交
159 160 161 162 163 164 165
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility';
import wantAgent from '@ohos.wantAgent';

function callback(err, data) {
    if (err) {
W
wangqing 已提交
166
        console.error("Operation startBackgroundRunning failed Cause: " + err);
Z
zhangxin_T 已提交
167
    } else {
W
wangqing 已提交
168
        console.info("Operation startBackgroundRunning succeeded");
Z
zhangxin_T 已提交
169 170 171 172 173 174 175 176 177 178 179 180
    }
}

let wantAgentInfo = {
    wants: [
        {
            bundleName: "com.example.myapplication",
            abilityName: "com.example.myapplication.MainAbility"
        }
    ],
    operationType: wantAgent.OperationType.START_ABILITY,
    requestCode: 0,
W
wangqing 已提交
181
    wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
Z
zhangxin_T 已提交
182 183 184 185
};

wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
    backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
Z
zhangxin_T 已提交
186
        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
Z
zhangxin_T 已提交
187 188 189 190
});

```

Z
zhangxin_T 已提交
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
Stage模型示例:

```ts
import Ability from '@ohos.application.Ability'
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import wantAgent from '@ohos.wantAgent';

function callback(err, data) {
    if (err) {
        console.error("Operation startBackgroundRunning failed Cause: " + err);
    } else {
        console.info("Operation startBackgroundRunning succeeded");
    }
}

export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        let wantAgentInfo = {
            wants: [
                {
                    bundleName: "com.example.myapplication",
                    abilityName: "com.example.myapplication.MainAbility"
                }
            ],
            operationType: wantAgent.OperationType.START_ABILITY,
            requestCode: 0,
            wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
        };

        wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
            backgroundTaskManager.startBackgroundRunning(this.context,
                backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
        });
    }
};
```

Z
bugfix  
zhangxin_T 已提交
228
## backgroundTaskManager.startBackgroundRunning<sup>8+</sup>
Z
zhangxin_T 已提交
229

Z
zhangxin_T 已提交
230
startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise&lt;void&gt;
Z
zhangxin_T 已提交
231 232 233

向系统申请长时任务,使用promise形式返回结果。

Z
zhangxin_T 已提交
234 235
**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING

Z
zhangxin_T 已提交
236 237
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

Z
zhangxin_T 已提交
238
**参数**
W
wangqing 已提交
239

H
HelloCrease 已提交
240 241 242 243 244
| 参数名       | 类型                                 | 必填   | 说明                                       |
| --------- | ---------------------------------- | ---- | ---------------------------------------- |
| context   | Context                            | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| bgMode    | [BackgroundMode](#backgroundmode8) | 是    | 向系统申请的后台模式。                              |
| wantAgent | [WantAgent](js-apis-wantAgent.md)  | 是    | 通知参数,用于指定长时任务通知点击跳转的界面。                  |
W
wangqing 已提交
245

246
**返回值**
H
HelloCrease 已提交
247 248 249
| 类型             | 说明               |
| -------------- | ---------------- |
| Promise\<void> | 使用Promise形式返回结果。 |
Z
zhangxin_T 已提交
250

Z
zhangxin_T 已提交
251
**示例**
Z
zhangxin_T 已提交
252 253 254

FA模型示例:

Z
zhangxin_T 已提交
255 256 257 258 259 260 261 262 263 264 265 266 267 268
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility';
import wantAgent from '@ohos.wantAgent';

let wantAgentInfo = {
    wants: [
        {
            bundleName: "com.example.myapplication",
            abilityName: "com.example.myapplication.MainAbility"
        }
    ],
    operationType: wantAgent.OperationType.START_ABILITY,
    requestCode: 0,
W
wangqing 已提交
269
    wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
Z
zhangxin_T 已提交
270 271 272 273
};

wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
    backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
Z
zhangxin_T 已提交
274
        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
W
wangqing 已提交
275
        console.info("Operation startBackgroundRunning succeeded");
Z
zhangxin_T 已提交
276
    }).catch((err) => {
W
wangqing 已提交
277
        console.error("Operation startBackgroundRunning failed Cause: " + err);
Z
zhangxin_T 已提交
278 279
    });
});
Z
zhangxin_T 已提交
280 281 282 283 284 285 286 287
```

Stage模型示例:

```ts
import Ability from '@ohos.application.Ability'
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import wantAgent from '@ohos.wantAgent';
Z
zhangxin_T 已提交
288

Z
zhangxin_T 已提交
289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        let wantAgentInfo = {
            wants: [
                {
                    bundleName: "com.example.myapplication",
                    abilityName: "com.example.myapplication.MainAbility"
                }
            ],
            operationType: wantAgent.OperationType.START_ABILITY,
            requestCode: 0,
            wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
        };

        wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
            backgroundTaskManager.startBackgroundRunning(this.context,
                backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
                console.info("Operation startBackgroundRunning succeeded");
            }).catch((err) => {
                console.error("Operation startBackgroundRunning failed Cause: " + err);
            });
        });
    }
};
Z
zhangxin_T 已提交
313 314
```

Z
bugfix  
zhangxin_T 已提交
315
## backgroundTaskManager.stopBackgroundRunning<sup>8+</sup>
Z
zhangxin_T 已提交
316

Z
zhangxin_T 已提交
317
stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): void
Z
zhangxin_T 已提交
318 319 320

向系统申请取消长时任务,使用callback形式返回结果。

Z
zhangxin_T 已提交
321 322
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

Z
zhangxin_T 已提交
323
**参数**
H
HelloCrease 已提交
324 325 326 327
| 参数名      | 类型                        | 必填   | 说明                                       |
| -------- | ------------------------- | ---- | ---------------------------------------- |
| context  | Context                   | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
| callback | AsyncCallback&lt;void&gt; | 是    | callback形式返回启动长时任务的结果。                   |
Z
zhangxin_T 已提交
328

Z
zhangxin_T 已提交
329
**示例**
Z
zhangxin_T 已提交
330 331 332

FA模型示例:

Z
zhangxin_T 已提交
333 334 335 336 337 338
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility';

function callback(err, data) {
    if (err) {
W
wangqing 已提交
339
        console.error("Operation stopBackgroundRunning failed Cause: " + err);
Z
zhangxin_T 已提交
340
    } else {
W
wangqing 已提交
341
        console.info("Operation stopBackgroundRunning succeeded");
Z
zhangxin_T 已提交
342 343 344 345 346 347 348
    }
}

backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext(), callback);

```

Z
zhangxin_T 已提交
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
Stage模型示例:

```ts
import Ability from '@ohos.application.Ability'
import backgroundTaskManager from '@ohos.backgroundTaskManager';

function callback(err, data) {
    if (err) {
        console.error("Operation stopBackgroundRunning failed Cause: " + err);
    } else {
        console.info("Operation stopBackgroundRunning succeeded");
    }
}

export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        backgroundTaskManager.stopBackgroundRunning(this.context, callback);
    }
};
```

Z
bugfix  
zhangxin_T 已提交
370
## backgroundTaskManager.stopBackgroundRunning<sup>8+</sup>
Z
zhangxin_T 已提交
371

Z
zhangxin_T 已提交
372
stopBackgroundRunning(context: Context): Promise&lt;void&gt;
Z
zhangxin_T 已提交
373 374 375

向系统申请取消长时任务,使用promise形式返回结果。

Z
zhangxin_T 已提交
376 377
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

Z
zhangxin_T 已提交
378
**参数**
H
HelloCrease 已提交
379 380
| 参数名     | 类型      | 必填   | 说明                                       |
| ------- | ------- | ---- | ---------------------------------------- |
Z
zhangxin_T 已提交
381
| context | Context | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](js-apis-Context.md)<br>Stage模型的应用Context定义见[Context](js-apis-ability-context.md)。 |
Z
zhangxin_T 已提交
382

383
**返回值**
H
HelloCrease 已提交
384 385 386
| 类型             | 说明               |
| -------------- | ---------------- |
| Promise\<void> | 使用Promise形式返回结果。 |
Z
zhangxin_T 已提交
387

Z
zhangxin_T 已提交
388
**示例**
Z
zhangxin_T 已提交
389 390 391

FA模型示例:

Z
zhangxin_T 已提交
392 393 394 395 396
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
import featureAbility from '@ohos.ability.featureAbility';

backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => {
W
wangqing 已提交
397
    console.info("Operation stopBackgroundRunning succeeded");
Z
zhangxin_T 已提交
398
}).catch((err) => {
W
wangqing 已提交
399
    console.error("Operation stopBackgroundRunning failed Cause: " + err);
Z
zhangxin_T 已提交
400 401 402 403
});

```

Z
zhangxin_T 已提交
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
Stage模型示例:

```ts
import Ability from '@ohos.application.Ability'
import backgroundTaskManager from '@ohos.backgroundTaskManager';

export default class MainAbility extends Ability {
    onCreate(want, launchParam) {
        backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
            console.info("Operation stopBackgroundRunning succeeded");
        }).catch((err) => {
            console.error("Operation stopBackgroundRunning failed Cause: " + err);
        });
    }
};
```

421
## backgroundTaskManager.applyEfficiencyResources<sup>9+</sup>
Z
Zhao-PengFei35 已提交
422 423 424

applyEfficiencyResources(request: [EfficiencyResourcesRequest](#efficiencyresourcesrequest9)): boolean

Z
zhangxin_T 已提交
425
向系统申请或释放能效资源,使用boolean形式返回结果。
Z
zhangxin_T 已提交
426 427
通过EfficiencyResourcesRequest参数中的isApply变量,设置是申请还是释放。
应用使用此接口,需要向应用中心申请获得相应特权。
428
进程和它所属的应用可以同时申请某一类资源,例如CPU资源,但是应用释放资源的时候会将进程的资源一起释放。
Z
Zhao-PengFei35 已提交
429

430
**系统能力**: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
431

432
**系统API**: 此接口为系统接口。
Z
Zhao-PengFei35 已提交
433 434

**参数**
435

Z
Zhao-PengFei35 已提交
436 437
| 参数名     | 类型      | 必填   | 说明                                       |
| ------- | ------- | ---- | ---------------------------------------- |
438
| request | [EfficiencyResourcesRequest](#efficiencyresourcesrequest9) | 是    | 请求的必要信息。包括资源类型,超时时间等信息。详见[EfficiencyResourcesRequest](#efficiencyresourcesrequest9)。 |
Z
Zhao-PengFei35 已提交
439

440
**返回值**
Z
Zhao-PengFei35 已提交
441 442 443 444 445
| 类型             | 说明               |
| -------------- | ---------------- |
| boolean | true代表申请成功,false代表申请失败。 |

**示例**
446

Z
Zhao-PengFei35 已提交
447 448 449 450 451
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';

let request = {
    resourceTypes: backgroundTaskManager.ResourceType.CPU,
Z
zhangxin_T 已提交
452
    // 如果将isApply置为false,则表示释放资源
Z
Zhao-PengFei35 已提交
453 454 455 456 457 458 459 460 461 462 463 464 465 466
    isApply: true,
    timeOut: 0,
    reason: "apply",
    isPersist: true,
    isProcess: false,
};
let res = backgroundTaskManager.applyEfficiencyResources(request);
console.info("result of applyEfficiencyResources is: " + res)
```

## backgroundTaskManager.resetAllEfficiencyResources<sup>9+</sup>

resetAllEfficiencyResources(): void

467
释放所有已经申请的资源。
Z
zhangxin_T 已提交
468
应用使用此接口,需要向应用中心申请获得相应特权。
Z
Zhao-PengFei35 已提交
469 470

**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply
471

472
**系统API**: 此接口为系统接口。
Z
Zhao-PengFei35 已提交
473 474

**示例**
475

Z
Zhao-PengFei35 已提交
476 477 478
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';

Z
zhangxin_T 已提交
479
backgroundTaskManager.resetAllEfficiencyResources();
Z
Zhao-PengFei35 已提交
480 481 482

```

Z
zhangxin_T 已提交
483 484 485 486
## DelaySuspendInfo

延迟挂起信息。

H
HelloCrease 已提交
487
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
Z
zhangxin_T 已提交
488

H
HelloCrease 已提交
489 490 491 492
| 参数名             | 类型     | 必填   | 说明                                       |
| --------------- | ------ | ---- | ---------------------------------------- |
| requestId       | number | 是    | 延迟挂起的请求ID。                               |
| actualDelayTime | number | 是    | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 |
Z
zhangxin_T 已提交
493 494 495


## BackgroundMode<sup>8+</sup>
Z
zhangxin_T 已提交
496

H
HelloCrease 已提交
497 498 499 500
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

| 参数名                     | 参数值  | 描述                    |
| ----------------------- | ---- | --------------------- |
501 502 503 504 505 506
| DATA_TRANSFER           | 1    | 数据传输。                  |
| AUDIO_PLAYBACK          | 2    | 音频播放。                  |
| AUDIO_RECORDING         | 3    | 录音。                    |
| LOCATION                | 4    | 定位导航。                  |
| BLUETOOTH_INTERACTION   | 5    | 蓝牙相关。                  |
| MULTI_DEVICE_CONNECTION | 6    | 多设备互联。                 |
H
HelloCrease 已提交
507 508
| WIFI_INTERACTION        | 7    | WLAN相关<br />此接口为系统接口。 |
| VOIP                    | 8    | 音视频通话<br />此接口为系统接口。  |
509
| TASK_KEEPING            | 9    | 计算任务(仅在特定设备生效)。        |
Z
Zhao-PengFei35 已提交
510 511 512

## EfficiencyResourcesRequest<sup>9+</sup>

513
能效资源申请参数。
Z
Zhao-PengFei35 已提交
514 515 516

**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

517 518
**系统API**: 此接口为系统接口。

Z
Zhao-PengFei35 已提交
519 520 521 522
| 参数名             | 类型     | 必填   | 说明                                       |
| --------------- | ------ | ---- | ---------------------------------------- |
| resourceTypes   | number  | 是    | 申请的资源类型。                               |
| isApply         | boolean | 是    | 申请资源或者是释放资源。          |
523
| timeOut         | number  | 是    | 资源的使用时间,以毫秒为单位。                |
Z
Zhao-PengFei35 已提交
524 525 526 527 528 529
| isPersist       | boolean | 否    | 是否永久持有资源,如果是true,那么timeOut就无效。    |
| isProcess       | boolean | 否    | 应用申请或者是进程申请。          |
| reason          | string  | 是    | 申请资源的原因。                |

## ResourceType<sup>9+</sup>

530 531
能效资源类型。

Z
Zhao-PengFei35 已提交
532 533
**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

534 535
**系统API**: 此接口为系统接口。

Z
Zhao-PengFei35 已提交
536 537
| 参数名                     | 参数值  | 描述                    |
| ----------------------- | ---- | --------------------- |
538 539 540 541 542 543 544
| CPU                     | 1    | CPU资源,申请后不被挂起。             |
| COMMON_EVENT            | 2    | 公共事件,申请后挂起状态下不被代理掉。  |
| TIMER                   | 4    | 计时器,申请后挂起状态下不被代理掉。    |
| WORK_SCHEDULER          | 8    | 延迟任务,申请后有更长的执行时间。      |
| BLUETOOTH               | 16   | 蓝牙相关,申请后挂起状态下不被代理掉。  |
| GPS                     | 32   | GPS相关,申请后挂起状态下不被代理掉。  |
| AUDIO                   | 64   | 音频资源,申请后挂起状态下不被代理掉。 |