1e41f4b71Sopenharmony_ci# @ohos.backgroundTaskManager (后台任务管理)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块提供后台任务管理能力。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci当应用或业务模块处于后台(无可见界面)时,如果有需要继续执行或者后续执行的业务,可基于业务类型,申请短时任务延迟挂起(Suspend)或者长时任务避免进入挂起状态。
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci应用有不可中断且短时间能完成的任务时(如,用户在文件管理器上点击垃圾文件清理,若清理未完成时退到后台,文件管理器需要申请短时任务完成清理),可以使用短时任务机制。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci应用中存在用户能够直观感受到的且需要一直在后台运行的业务时(如,后台播放音乐),可以使用长时任务机制。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci>  **说明:**
13e41f4b71Sopenharmony_ci>
14e41f4b71Sopenharmony_ci> - 从API Version 9 开始,该接口不再维护,推荐使用新接口[@ohos.resourceschedule.backgroundTaskManager (后台任务管理)](js-apis-resourceschedule-backgroundTaskManager.md)。
15e41f4b71Sopenharmony_ci>
16e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci## 导入模块
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci```ts
22e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';  
23e41f4b71Sopenharmony_ci```
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci## backgroundTaskManager.requestSuspendDelay
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_cirequestSuspendDelay(reason: string, callback: Callback<void>): DelaySuspendInfo
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci后台应用申请延迟挂起。
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci延迟挂起时间一般情况下默认值为3分钟,低电量(依据系统低电量广播)时默认值为1分钟。
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci**参数**:
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci| 参数名      | 类型                   | 必填   | 说明                             |
39e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------ |
40e41f4b71Sopenharmony_ci| reason   | string               | 是    | 延迟挂起申请的原因。                     |
41e41f4b71Sopenharmony_ci| callback | Callback<void> | 是    | 延迟即将超时的回调函数,一般在超时前6秒通过此回调通知应用。 |
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci**返回值**:
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci| 类型                                    | 说明        |
46e41f4b71Sopenharmony_ci| ------------------------------------- | --------- |
47e41f4b71Sopenharmony_ci| [DelaySuspendInfo](#delaysuspendinfo) | 返回延迟挂起信息。 |
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**示例**:
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci  ```ts
52e41f4b71Sopenharmony_ci  import backgroundTaskManager from '@ohos.backgroundTaskManager';
53e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
54e41f4b71Sopenharmony_ci  
55e41f4b71Sopenharmony_ci  // 设置延迟任务挂起的原因
56e41f4b71Sopenharmony_ci  let myReason = 'test requestSuspendDelay';
57e41f4b71Sopenharmony_ci  // 申请延迟任务
58e41f4b71Sopenharmony_ci  let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => {
59e41f4b71Sopenharmony_ci      console.info("Request suspension delay will time out.");
60e41f4b71Sopenharmony_ci  })
61e41f4b71Sopenharmony_ci  // 打印延迟任务信息
62e41f4b71Sopenharmony_ci  let id = delayInfo.requestId;
63e41f4b71Sopenharmony_ci  let time = delayInfo.actualDelayTime;
64e41f4b71Sopenharmony_ci  console.info("The requestId is: " + id);
65e41f4b71Sopenharmony_ci  console.info("The actualDelayTime is: " + time);
66e41f4b71Sopenharmony_ci  ```
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci## backgroundTaskManager.getRemainingDelayTime
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_cigetRemainingDelayTime(requestId: number, callback: AsyncCallback<number>): void
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci获取应用程序进入挂起状态前的剩余时间,使用callback形式返回。
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**参数**:
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci| 参数名       | 类型                          | 必填   | 说明                                       |
80e41f4b71Sopenharmony_ci| --------- | --------------------------- | ---- | ---------------------------------------- |
81e41f4b71Sopenharmony_ci| requestId | number                      | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
82e41f4b71Sopenharmony_ci| callback  | AsyncCallback<number> | 是    | 指定的callback回调方法。用于返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci**示例**:
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci  ```ts
87e41f4b71Sopenharmony_ci  import backgroundTaskManager from '@ohos.backgroundTaskManager';
88e41f4b71Sopenharmony_ci  import { BusinessError } from '@ohos.base';
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci  let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
91e41f4b71Sopenharmony_ci  backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId, (err: BusinessError, res: number) => {
92e41f4b71Sopenharmony_ci      if(err) {
93e41f4b71Sopenharmony_ci          console.log('callback => Operation getRemainingDelayTime failed. Cause: ' + err.code);
94e41f4b71Sopenharmony_ci      } else {
95e41f4b71Sopenharmony_ci          console.log('callback => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
96e41f4b71Sopenharmony_ci      }
97e41f4b71Sopenharmony_ci  })
98e41f4b71Sopenharmony_ci  ```
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci## backgroundTaskManager.getRemainingDelayTime
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_cigetRemainingDelayTime(requestId: number): Promise<number>
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci获取应用程序进入挂起状态前的剩余时间,使用Promise形式返回。
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**参数**:
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci| 参数名       | 类型     | 必填   | 说明         |
112e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ---------- |
113e41f4b71Sopenharmony_ci| requestId | number | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci**返回值**:
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci| 类型                    | 说明                                       |
118e41f4b71Sopenharmony_ci| --------------------- | ---------------------------------------- |
119e41f4b71Sopenharmony_ci| Promise<number> | 指定的Promise回调方法。返回应用程序进入挂起状态之前的剩余时间,以毫秒为单位。 |
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**示例**:
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci```ts
124e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
125e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_cilet delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
128e41f4b71Sopenharmony_ci    backgroundTaskManager.getRemainingDelayTime(delayInfo.requestId).then((res:number) => {
129e41f4b71Sopenharmony_ci    console.log('promise => Operation getRemainingDelayTime succeeded. Data: ' + JSON.stringify(res));
130e41f4b71Sopenharmony_ci}).catch((err : BusinessError) => {
131e41f4b71Sopenharmony_ci    console.log('promise => Operation getRemainingDelayTime failed. Cause: ' + err.code);
132e41f4b71Sopenharmony_ci})
133e41f4b71Sopenharmony_ci```
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci## backgroundTaskManager.cancelSuspendDelay
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_cicancelSuspendDelay(requestId: number): void
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci取消延迟挂起。
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci**参数**:
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci| 参数名       | 类型     | 必填   | 说明         |
147e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ---------- |
148e41f4b71Sopenharmony_ci| requestId | number | 是    | 延迟挂起的请求ID。这个值通过调用[requestSuspendDelay](#backgroundtaskmanagerrequestsuspenddelay)方法获取。 |
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci**示例**:
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci  ```ts
153e41f4b71Sopenharmony_ci  let delayInfo = backgroundTaskManager.requestSuspendDelay("test", () => {});
154e41f4b71Sopenharmony_ci  backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId);
155e41f4b71Sopenharmony_ci  ```
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_ci## backgroundTaskManager.startBackgroundRunning<sup>8+</sup>
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_cistartBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback&lt;void&gt;): void
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci向系统申请长时任务,使用callback形式返回结果。
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci**参数**:
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci| 参数名    | 类型                                          | 必填 | 说明                                                         |
171e41f4b71Sopenharmony_ci| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
172e41f4b71Sopenharmony_ci| context   | Context                                       | 是   | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
173e41f4b71Sopenharmony_ci| bgMode    | [BackgroundMode](#backgroundmode8)            | 是   | 向系统申请的后台模式。                                       |
174e41f4b71Sopenharmony_ci| wantAgent | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是   | 通知参数,用于指定长时任务通知点击后跳转的界面。             |
175e41f4b71Sopenharmony_ci| callback  | AsyncCallback&lt;void&gt;                     | 是   | callback形式返回启动长时任务的结果。                         |
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**示例**:
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ciFA模型示例:
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci```js
182e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
183e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility';
184e41f4b71Sopenharmony_ciimport wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
185e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_cifunction callback(err: BusinessError, data: void) {
188e41f4b71Sopenharmony_ci  if (err) {
189e41f4b71Sopenharmony_ci    console.error("Operation startBackgroundRunning failed Cause: " + err);
190e41f4b71Sopenharmony_ci  } else {
191e41f4b71Sopenharmony_ci    console.info("Operation startBackgroundRunning succeeded");
192e41f4b71Sopenharmony_ci  }
193e41f4b71Sopenharmony_ci}
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_cilet wantAgentInfo : wantAgent.WantAgentInfo = {
196e41f4b71Sopenharmony_ci  wants: [
197e41f4b71Sopenharmony_ci    {
198e41f4b71Sopenharmony_ci      bundleName: "com.example.myapplication",
199e41f4b71Sopenharmony_ci      abilityName: "EntryAbility"
200e41f4b71Sopenharmony_ci    }
201e41f4b71Sopenharmony_ci  ],
202e41f4b71Sopenharmony_ci  operationType: wantAgent.OperationType.START_ABILITY,
203e41f4b71Sopenharmony_ci  requestCode: 0,
204e41f4b71Sopenharmony_ci  wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
205e41f4b71Sopenharmony_ci};
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ciwantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
208e41f4b71Sopenharmony_ci  backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
209e41f4b71Sopenharmony_ci    backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
210e41f4b71Sopenharmony_ci});
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci```
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ciStage模型示例:
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_ci```ts
217e41f4b71Sopenharmony_ciimport UIAbility from '@ohos.app.ability.UIAbility';
218e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
219e41f4b71Sopenharmony_ciimport wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
220e41f4b71Sopenharmony_ciimport Want from '@ohos.app.ability.Want';
221e41f4b71Sopenharmony_ciimport AbilityConstant from '@ohos.app.ability.AbilityConstant';
222e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_cifunction callback(err: BusinessError, data: void) {
225e41f4b71Sopenharmony_ci  if (err) {
226e41f4b71Sopenharmony_ci    console.error("Operation startBackgroundRunning failed Cause: " + err);
227e41f4b71Sopenharmony_ci  } else {
228e41f4b71Sopenharmony_ci    console.info("Operation startBackgroundRunning succeeded");
229e41f4b71Sopenharmony_ci  }
230e41f4b71Sopenharmony_ci}
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
233e41f4b71Sopenharmony_ci  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
234e41f4b71Sopenharmony_ci    let wantAgentInfo : wantAgent.WantAgentInfo = {
235e41f4b71Sopenharmony_ci      wants: [
236e41f4b71Sopenharmony_ci        {
237e41f4b71Sopenharmony_ci          bundleName: "com.example.myapplication",
238e41f4b71Sopenharmony_ci          abilityName: "EntryAbility"
239e41f4b71Sopenharmony_ci        }
240e41f4b71Sopenharmony_ci      ],
241e41f4b71Sopenharmony_ci      operationType: wantAgent.OperationType.START_ABILITY,
242e41f4b71Sopenharmony_ci      requestCode: 0,
243e41f4b71Sopenharmony_ci      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
244e41f4b71Sopenharmony_ci    };
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
247e41f4b71Sopenharmony_ci      backgroundTaskManager.startBackgroundRunning(this.context,
248e41f4b71Sopenharmony_ci        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback)
249e41f4b71Sopenharmony_ci    });
250e41f4b71Sopenharmony_ci  }
251e41f4b71Sopenharmony_ci};
252e41f4b71Sopenharmony_ci```
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci## backgroundTaskManager.startBackgroundRunning<sup>8+</sup>
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_cistartBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise&lt;void&gt;
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci向系统申请长时任务,使用promise形式返回结果。
259e41f4b71Sopenharmony_ci
260e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.KEEP_BACKGROUND_RUNNING
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci**参数**:
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_ci| 参数名    | 类型                                          | 必填 | 说明                                                         |
267e41f4b71Sopenharmony_ci| --------- | --------------------------------------------- | ---- | ------------------------------------------------------------ |
268e41f4b71Sopenharmony_ci| context   | Context                                       | 是   | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
269e41f4b71Sopenharmony_ci| bgMode    | [BackgroundMode](#backgroundmode8)            | 是   | 向系统申请的后台模式。                                       |
270e41f4b71Sopenharmony_ci| wantAgent | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是   | 通知参数,用于指定长时任务通知点击跳转的界面。               |
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci**返回值**:
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci| 类型             | 说明               |
275e41f4b71Sopenharmony_ci| -------------- | ---------------- |
276e41f4b71Sopenharmony_ci| Promise\<void> | 使用Promise形式返回结果。 |
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci**示例**:
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ciFA模型示例(需使用js代码开发):
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci```js
283e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
284e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility';
285e41f4b71Sopenharmony_ciimport wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
286e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_cilet wantAgentInfo : wantAgent.WantAgentInfo = {
289e41f4b71Sopenharmony_ci  wants: [
290e41f4b71Sopenharmony_ci    {
291e41f4b71Sopenharmony_ci      bundleName: "com.example.myapplication",
292e41f4b71Sopenharmony_ci      abilityName: "EntryAbility"
293e41f4b71Sopenharmony_ci    }
294e41f4b71Sopenharmony_ci  ],
295e41f4b71Sopenharmony_ci  operationType: wantAgent.OperationType.START_ABILITY,
296e41f4b71Sopenharmony_ci  requestCode: 0,
297e41f4b71Sopenharmony_ci  wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
298e41f4b71Sopenharmony_ci};
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ciwantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj: WantAgent) => {
301e41f4b71Sopenharmony_ci  backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
302e41f4b71Sopenharmony_ci    backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
303e41f4b71Sopenharmony_ci    console.info("Operation startBackgroundRunning succeeded");
304e41f4b71Sopenharmony_ci  }).catch((err: BusinessError) => {
305e41f4b71Sopenharmony_ci    console.error("Operation startBackgroundRunning failed Cause: " + err);
306e41f4b71Sopenharmony_ci  });
307e41f4b71Sopenharmony_ci});
308e41f4b71Sopenharmony_ci```
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ciStage模型示例:
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci```ts
313e41f4b71Sopenharmony_ciimport UIAbility from '@ohos.app.ability.UIAbility';
314e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
315e41f4b71Sopenharmony_ciimport wantAgent, { WantAgent } from '@ohos.app.ability.wantAgent';
316e41f4b71Sopenharmony_ciimport Want from '@ohos.app.ability.Want';
317e41f4b71Sopenharmony_ciimport AbilityConstant from '@ohos.app.ability.AbilityConstant';
318e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
321e41f4b71Sopenharmony_ci  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
322e41f4b71Sopenharmony_ci    let wantAgentInfo : wantAgent.WantAgentInfo = {
323e41f4b71Sopenharmony_ci      wants: [
324e41f4b71Sopenharmony_ci        {
325e41f4b71Sopenharmony_ci          bundleName: "com.example.myapplication",
326e41f4b71Sopenharmony_ci          abilityName: "EntryAbility"
327e41f4b71Sopenharmony_ci        }
328e41f4b71Sopenharmony_ci      ],
329e41f4b71Sopenharmony_ci      // 点击通知后,动作类型
330e41f4b71Sopenharmony_ci      operationType: wantAgent.OperationType.START_ABILITY,
331e41f4b71Sopenharmony_ci      requestCode: 0,
332e41f4b71Sopenharmony_ci      // 点击通知后,动作执行属性
333e41f4b71Sopenharmony_ci      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
334e41f4b71Sopenharmony_ci    };
335e41f4b71Sopenharmony_ci
336e41f4b71Sopenharmony_ci    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj : WantAgent) => {
337e41f4b71Sopenharmony_ci      backgroundTaskManager.startBackgroundRunning(this.context,
338e41f4b71Sopenharmony_ci        backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => {
339e41f4b71Sopenharmony_ci        console.info("Operation startBackgroundRunning succeeded");
340e41f4b71Sopenharmony_ci      }).catch((err: BusinessError) => {
341e41f4b71Sopenharmony_ci        console.error("Operation startBackgroundRunning failed Cause: " + err);
342e41f4b71Sopenharmony_ci      });
343e41f4b71Sopenharmony_ci    });
344e41f4b71Sopenharmony_ci  }
345e41f4b71Sopenharmony_ci};
346e41f4b71Sopenharmony_ci```
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci## backgroundTaskManager.stopBackgroundRunning<sup>8+</sup>
349e41f4b71Sopenharmony_ci
350e41f4b71Sopenharmony_cistopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): void
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci向系统申请取消长时任务,使用callback形式返回结果。
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci**参数**:
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci| 参数名      | 类型                        | 必填   | 说明                                       |
359e41f4b71Sopenharmony_ci| -------- | ------------------------- | ---- | ---------------------------------------- |
360e41f4b71Sopenharmony_ci| context  | Context                   | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
361e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;void&gt; | 是    | callback形式返回启动长时任务的结果。                   |
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ci**示例**:
364e41f4b71Sopenharmony_ci
365e41f4b71Sopenharmony_ciFA模型示例(需使用js代码开发):
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci```js
368e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
369e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility';
370e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_cifunction callback(err: BusinessError, data: void) {
373e41f4b71Sopenharmony_ci  if (err) {
374e41f4b71Sopenharmony_ci    console.error("Operation stopBackgroundRunning failed Cause: " + err);
375e41f4b71Sopenharmony_ci  } else {
376e41f4b71Sopenharmony_ci    console.info("Operation stopBackgroundRunning succeeded");
377e41f4b71Sopenharmony_ci  }
378e41f4b71Sopenharmony_ci}
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_cibackgroundTaskManager.stopBackgroundRunning(featureAbility.getContext(), callback);
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ci```
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ciStage模型示例:
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_ci```ts
387e41f4b71Sopenharmony_ciimport UIAbility from '@ohos.app.ability.UIAbility';
388e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
389e41f4b71Sopenharmony_ciimport Want from '@ohos.app.ability.Want';
390e41f4b71Sopenharmony_ciimport AbilityConstant from '@ohos.app.ability.AbilityConstant';
391e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
392e41f4b71Sopenharmony_ci
393e41f4b71Sopenharmony_cifunction callback(err: BusinessError, data: void) {
394e41f4b71Sopenharmony_ci  if (err) {
395e41f4b71Sopenharmony_ci    console.error("Operation stopBackgroundRunning failed Cause: " + err);
396e41f4b71Sopenharmony_ci  } else {
397e41f4b71Sopenharmony_ci    console.info("Operation stopBackgroundRunning succeeded");
398e41f4b71Sopenharmony_ci  }
399e41f4b71Sopenharmony_ci}
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
402e41f4b71Sopenharmony_ci  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
403e41f4b71Sopenharmony_ci    backgroundTaskManager.stopBackgroundRunning(this.context, callback);
404e41f4b71Sopenharmony_ci  }
405e41f4b71Sopenharmony_ci};
406e41f4b71Sopenharmony_ci```
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci## backgroundTaskManager.stopBackgroundRunning<sup>8+</sup>
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_cistopBackgroundRunning(context: Context): Promise&lt;void&gt;
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci向系统申请取消长时任务,使用promise形式返回结果。
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ci**参数**:
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci| 参数名     | 类型      | 必填   | 说明                                       |
419e41f4b71Sopenharmony_ci| ------- | ------- | ---- | ---------------------------------------- |
420e41f4b71Sopenharmony_ci| context | Context | 是    | 应用运行的上下文。<br>FA模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-app-context.md)。<br>Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ci**返回值**:
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci| 类型             | 说明               |
425e41f4b71Sopenharmony_ci| -------------- | ---------------- |
426e41f4b71Sopenharmony_ci| Promise\<void> | 使用Promise形式返回结果。 |
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_ci**示例**:
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ciFA模型示例:
431e41f4b71Sopenharmony_ci
432e41f4b71Sopenharmony_ci```js
433e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
434e41f4b71Sopenharmony_ciimport featureAbility from '@ohos.ability.featureAbility';
435e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci// 取消长时任务
438e41f4b71Sopenharmony_cibackgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => {
439e41f4b71Sopenharmony_ci  console.info("Operation stopBackgroundRunning succeeded");
440e41f4b71Sopenharmony_ci}).catch((err: BusinessError) => {
441e41f4b71Sopenharmony_ci  console.error("Operation stopBackgroundRunning failed Cause: " + err);
442e41f4b71Sopenharmony_ci});
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci```
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ciStage模型示例:
447e41f4b71Sopenharmony_ci
448e41f4b71Sopenharmony_ci```ts
449e41f4b71Sopenharmony_ciimport UIAbility from '@ohos.app.ability.UIAbility';
450e41f4b71Sopenharmony_ciimport backgroundTaskManager from '@ohos.backgroundTaskManager';
451e41f4b71Sopenharmony_ciimport Want from '@ohos.app.ability.Want';
452e41f4b71Sopenharmony_ciimport AbilityConstant from '@ohos.app.ability.AbilityConstant';
453e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
454e41f4b71Sopenharmony_ci
455e41f4b71Sopenharmony_ciexport default class EntryAbility extends UIAbility {
456e41f4b71Sopenharmony_ci  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
457e41f4b71Sopenharmony_ci    // 取消长时任务
458e41f4b71Sopenharmony_ci    backgroundTaskManager.stopBackgroundRunning(this.context).then(() => {
459e41f4b71Sopenharmony_ci      console.info("Operation stopBackgroundRunning succeeded");
460e41f4b71Sopenharmony_ci    }).catch((err: BusinessError) => {
461e41f4b71Sopenharmony_ci      console.error("Operation stopBackgroundRunning failed Cause: " + err);
462e41f4b71Sopenharmony_ci    });
463e41f4b71Sopenharmony_ci  }
464e41f4b71Sopenharmony_ci};
465e41f4b71Sopenharmony_ci```
466e41f4b71Sopenharmony_ci
467e41f4b71Sopenharmony_ci## DelaySuspendInfo
468e41f4b71Sopenharmony_ci
469e41f4b71Sopenharmony_ci延迟挂起信息。
470e41f4b71Sopenharmony_ci
471e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.TransientTask
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci| 名称             | 类型     | 必填   | 说明                                       |
474e41f4b71Sopenharmony_ci| --------------- | ------ | ---- | ---------------------------------------- |
475e41f4b71Sopenharmony_ci| requestId       | number | 是    | 延迟挂起的请求ID。                               |
476e41f4b71Sopenharmony_ci| actualDelayTime | number | 是    | 应用的实际挂起延迟时间,以毫秒为单位。<br/>一般情况下默认值为180000,低电量(依据系统低电量广播)时默认值为60000。 |
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ci## BackgroundMode<sup>8+</sup>
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ci| 名称                     | 值  | 说明                    |
484e41f4b71Sopenharmony_ci| ----------------------- | ---- | --------------------- |
485e41f4b71Sopenharmony_ci| DATA_TRANSFER           | 1    | 数据传输。                  |
486e41f4b71Sopenharmony_ci| AUDIO_PLAYBACK          | 2    | 音频播放。                  |
487e41f4b71Sopenharmony_ci| AUDIO_RECORDING         | 3    | 录音。                    |
488e41f4b71Sopenharmony_ci| LOCATION                | 4    | 定位导航。                  |
489e41f4b71Sopenharmony_ci| BLUETOOTH_INTERACTION   | 5    | 蓝牙相关。                  |
490e41f4b71Sopenharmony_ci| MULTI_DEVICE_CONNECTION | 6    | 多设备互联。                 |
491e41f4b71Sopenharmony_ci| TASK_KEEPING            | 9    | 计算任务(仅在特定设备生效)。        |
492