js-apis-app-ability-missionManager.md 31.7 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.missionManager (missionManager)
D
donglin 已提交
2 3 4 5

missionManager模块提供系统任务管理能力,包括对系统任务执行锁定、解锁、清理、切换到前台等操作。

> **说明:**
C
caochunlei 已提交
6
>
D
donglin 已提交
7 8 9 10
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

M
m00512953 已提交
11
```ts
C
caochunlei 已提交
12
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
13 14 15 16 17 18 19 20
```

## 权限列表

ohos.permission.MANAGE_MISSIONS

## missionManager.on

M
mingxihua 已提交
21
on(type:'mission', listener: MissionListener): number;
D
donglin 已提交
22

C
caochunlei 已提交
23
注册系统任务状态监听器。
D
donglin 已提交
24 25 26 27 28 29 30 31 32 33 34

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
35
  | listener | [MissionListener](js-apis-inner-application-missionListener.md) | 是 | 系统任务监听器。 |
D
donglin 已提交
36 37 38 39 40

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
C
caochunlei 已提交
41
  | number | 监听器的index值,由系统创建,在注册系统任务状态监听时分配,和监听器一一对应 。 |
D
donglin 已提交
42 43 44

**示例:**

M
m00512953 已提交
45
```ts
C
caochunlei 已提交
46
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
47
import UIAbility from '@ohos.app.ability.UIAbility';
U
unknown 已提交
48

M
mingxihua 已提交
49
let listener = {
M
mingxihua 已提交
50 51 52 53 54 55 56
    onMissionCreated: function (mission) {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: function (mission) {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: function (mission) {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: function (mission) {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: function (mission, icon) {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: function (mission) {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: function (mission) {console.log('--------onMissionLabelUpdated-------');}
U
unknown 已提交
57 58
};

M
mingxihua 已提交
59
let listenerId = -1;
U
unknown 已提交
60

61
export default class EntryAbility extends UIAbility {
U
unknown 已提交
62
    onCreate(want, launchParam) {
M
mingxihua 已提交
63
        console.log('[Demo] EntryAbility onCreate');
U
unknown 已提交
64 65 66 67 68 69
        globalThis.abilityWant = want;
        globalThis.context = this.context;
    }

    onDestroy() {
        try {
M
mingxihua 已提交
70 71
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId).catch(function (err) {
U
unknown 已提交
72 73 74 75
                    console.log(err);
                });
            }
        } catch (paramError) {
M
mingxihua 已提交
76
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
77
        }
M
mingxihua 已提交
78
        console.log('[Demo] EntryAbility onDestroy');
U
unknown 已提交
79 80 81 82
    }

    onWindowStageCreate(windowStage) {
        // Main window is created, set main page for this ability
M
mingxihua 已提交
83
        console.log('[Demo] EntryAbility onWindowStageCreate');
U
unknown 已提交
84
        try {
M
mingxihua 已提交
85
            listenerId = missionManager.on('mission', listener);
U
unknown 已提交
86
        } catch (paramError) {
M
mingxihua 已提交
87
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
88 89
        }

M
mingxihua 已提交
90
        windowStage.loadContent('pages/index', (err, data) => {
U
unknown 已提交
91
            if (err.code) {
M
mingxihua 已提交
92
                console.error('Failed to load the content. Cause: ${JSON.stringify(err)}');
U
unknown 已提交
93 94
                return;
            }
M
mingxihua 已提交
95
            console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}');
U
unknown 已提交
96 97 98 99 100 101 102
        });

        if (globalThis.flag) {
            return;
        }
    }
};
D
donglin 已提交
103 104 105 106 107
```


## missionManager.off

M
mingxihua 已提交
108
off(type: 'mission', listenerId: number, callback: AsyncCallback<void>): void;
D
donglin 已提交
109

C
caochunlei 已提交
110
解注册任务状态监听器。
D
donglin 已提交
111 112 113 114 115 116 117 118 119 120 121

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
C
caochunlei 已提交
122
  | listenerId | number | 是 | 系统任务状态监器法的index值,和监听器一一对应,由on方法返回。 |
D
donglin 已提交
123 124 125 126
  | callback | AsyncCallback<void> | 是 | 执行结果回调函数。 |

**示例:**

M
m00512953 已提交
127
```ts
C
caochunlei 已提交
128
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
129
import UIAbility from '@ohos.app.ability.UIAbility';
U
unknown 已提交
130

M
mingxihua 已提交
131
let listener = {
M
mingxihua 已提交
132 133 134 135 136 137 138
    onMissionCreated: function (mission) {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: function (mission) {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: function (mission) {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: function (mission) {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: function (mission, icon) {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: function (mission) {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: function (mission) {console.log('--------onMissionLabelUpdated-------');}
U
unknown 已提交
139 140
};

M
mingxihua 已提交
141
let listenerId = -1;
U
unknown 已提交
142

143
export default class EntryAbility extends UIAbility {
U
unknown 已提交
144
    onCreate(want, launchParam) {
M
mingxihua 已提交
145
        console.log('[Demo] EntryAbility onCreate');
U
unknown 已提交
146 147 148 149 150 151
        globalThis.abilityWant = want;
        globalThis.context = this.context;
    }

    onDestroy() {
        try {
M
mingxihua 已提交
152 153
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId, (err) => {
U
unknown 已提交
154 155 156 157
                    console.log(err);
                });
            }
        } catch (paramError) {
M
mingxihua 已提交
158
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
159
        }
M
mingxihua 已提交
160
        console.log('[Demo] EntryAbility onDestroy');
U
unknown 已提交
161 162 163 164
    }

    onWindowStageCreate(windowStage) {
        // Main window is created, set main page for this ability
M
mingxihua 已提交
165
        console.log('[Demo] EntryAbility onWindowStageCreate');
U
unknown 已提交
166
        try {
M
mingxihua 已提交
167
            listenerId = missionManager.on('mission', listener);
U
unknown 已提交
168
        } catch (paramError) {
M
mingxihua 已提交
169
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
170 171
        }

M
mingxihua 已提交
172
        windowStage.loadContent('pages/index', (err, data) => {
U
unknown 已提交
173
            if (err.code) {
M
mingxihua 已提交
174
                console.error('Failed to load the content. Cause: ${JSON.stringify(err)}');
U
unknown 已提交
175 176
                return;
            }
M
mingxihua 已提交
177
            console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}');
U
unknown 已提交
178 179 180 181 182 183 184
        });

        if (globalThis.flag) {
            return;
        }
    }
};
D
donglin 已提交
185 186 187 188 189
```


## missionManager.off

M
mingxihua 已提交
190
off(type: 'mission', listenerId: number): Promise<void>;
D
donglin 已提交
191

C
caochunlei 已提交
192
解注册任务状态监听,以promise方式返回执行结果。
D
donglin 已提交
193 194 195 196 197 198 199 200 201 202 203

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
C
caochunlei 已提交
204
  | listenerId | number | 是 | 系统任务状态监听器的index值,和监听器一一对应,由on方法返回。 |
D
donglin 已提交
205 206 207

**返回值:**

C
caochunlei 已提交
208
  | 类型 | 说明 |
D
donglin 已提交
209
  | -------- | -------- |
C
caochunlei 已提交
210
  | Promise<void> | promise方式返回执行结果。 |
D
donglin 已提交
211 212 213

**示例:**

M
m00512953 已提交
214
```ts
C
caochunlei 已提交
215
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
216
import UIAbility from '@ohos.app.ability.UIAbility';
U
unknown 已提交
217

M
mingxihua 已提交
218
let listener = {
M
mingxihua 已提交
219 220 221 222 223 224 225
    onMissionCreated: function (mission) {console.log('--------onMissionCreated-------');},
    onMissionDestroyed: function (mission) {console.log('--------onMissionDestroyed-------');},
    onMissionSnapshotChanged: function (mission) {console.log('--------onMissionSnapshotChanged-------');},
    onMissionMovedToFront: function (mission) {console.log('--------onMissionMovedToFront-------');},
    onMissionIconUpdated: function (mission, icon) {console.log('--------onMissionIconUpdated-------');},
    onMissionClosed: function (mission) {console.log('--------onMissionClosed-------');},
    onMissionLabelUpdated: function (mission) {console.log('--------onMissionLabelUpdated-------');}
U
unknown 已提交
226 227
};

M
mingxihua 已提交
228
let listenerId = -1;
U
unknown 已提交
229

230
export default class EntryAbility extends UIAbility {
U
unknown 已提交
231
    onCreate(want, launchParam) {
M
mingxihua 已提交
232
        console.log('[Demo] EntryAbility onCreate');
U
unknown 已提交
233 234 235 236 237 238
        globalThis.abilityWant = want;
        globalThis.context = this.context;
    }

    onDestroy() {
        try {
M
mingxihua 已提交
239 240
            if (listenerId !== -1) {
                missionManager.off('mission', listenerId).catch(function (err) {
U
unknown 已提交
241 242 243 244
                    console.log(err);
                });
            }
        } catch (paramError) {
M
mingxihua 已提交
245
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
246
        }
M
mingxihua 已提交
247
        console.log('[Demo] EntryAbility onDestroy');
U
unknown 已提交
248 249 250 251
    }

    onWindowStageCreate(windowStage) {
        // Main window is created, set main page for this ability
M
mingxihua 已提交
252
        console.log('[Demo] EntryAbility onWindowStageCreate');
U
unknown 已提交
253
        try {
M
mingxihua 已提交
254
            listenerId = missionManager.on('mission', listener);
U
unknown 已提交
255
        } catch (paramError) {
M
mingxihua 已提交
256
            console.error('error: ${paramError.code}, ${paramError.message}');
U
unknown 已提交
257 258
        }

M
mingxihua 已提交
259
        windowStage.loadContent('pages/index', (err, data) => {
U
unknown 已提交
260
            if (err.code) {
M
mingxihua 已提交
261
                console.error('Failed to load the content. Cause: ${JSON.stringify(err)}');
U
unknown 已提交
262 263
                return;
            }
M
mingxihua 已提交
264
            console.info('Succeeded in loading the content. Data: ${JSON.stringify(data)}');
U
unknown 已提交
265 266 267 268 269 270 271
        });

        if (globalThis.flag) {
            return;
        }
    }
};
D
donglin 已提交
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292
```


## missionManager.getMissionInfo

getMissionInfo(deviceId: string, missionId: number, callback: AsyncCallback<MissionInfo>): void;

获取任务信息,以异步回调的方式返回任务信息。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |
D
ability  
donglin 已提交
293
  | callback | AsyncCallback<[MissionInfo](./js-apis-inner-application-missionInfo.md))> | 是 | 执行结果回调函数,返回任务信息。 |
D
donglin 已提交
294 295 296

**示例:**

M
m00512953 已提交
297
  ```ts
C
caochunlei 已提交
298 299 300
  import missionManager from '@ohos.app.ability.missionManager';

  let testMissionId = 1;
D
donglin 已提交
301
  try {
M
mingxihua 已提交
302
    let allMissions=await missionManager.getMissionInfos('',10).catch(function(err){console.log(err);});
C
caochunlei 已提交
303 304 305
    if (allMissions && allMissions.length > 0) {
        testMissionId = allMissions[0].missionId;
    }
C
caochunlei 已提交
306

M
mingxihua 已提交
307
    missionManager.getMissionInfo('', testMissionId, (error, mission) => {
C
caochunlei 已提交
308
        if (error) {
M
mingxihua 已提交
309
            console.error('getMissionInfo failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
C
caochunlei 已提交
310
        } else {
M
mingxihua 已提交
311 312 313 314 315 316
            console.log('mission.missionId = ${mission.missionId}');
            console.log('mission.runningState = ${mission.runningState}');
            console.log('mission.lockedState = ${mission.lockedState}');
            console.log('mission.timestamp = ${mission.timestamp}');
            console.log('mission.label = ${mission.label}');
            console.log('mission.iconPath = ${mission.iconPath}');
C
caochunlei 已提交
317 318
        }
    });
D
donglin 已提交
319
  } catch (paramError) {
M
mingxihua 已提交
320
    console.error('error.code: ${paramError.code}, error.message: ${paramError.message}');
D
donglin 已提交
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347
  }
  ```


## missionManager.getMissionInfo

getMissionInfo(deviceId: string, missionId: number): Promise<MissionInfo>;

获取任务信息,以promise方式返回任务信息。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
D
ability  
donglin 已提交
348
  | Promise<[MissionInfo](./js-apis-inner-application-missionInfo.md)> | 任务信息。 |
D
donglin 已提交
349 350 351

**示例:**

C
caochunlei 已提交
352 353 354 355 356
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 1;
try {
M
mingxihua 已提交
357
    missionManager.getMissionInfo('', testMissionId).then((data) => {
M
mingxihua 已提交
358
        console.info('getMissionInfo successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
359
    }).catch(error => {
M
mingxihua 已提交
360
        console.error('getMissionInfo failed. Cause: ${error.message}');
D
donglin 已提交
361
    });
C
caochunlei 已提交
362
} catch (error) {
M
mingxihua 已提交
363
    console.error('getMissionInfo failed. Cause: ${error.message}');
C
caochunlei 已提交
364 365
}
```
D
donglin 已提交
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384

## missionManager.getMissionInfos

getMissionInfos(deviceId: string, numMax: number, callback: AsyncCallback<Array<MissionInfo>>): void;

获取所有任务信息,以回调函数的方式返回任务信息数组。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | numMax | number | 是 | 任务信息数量上限。 |
D
ability  
donglin 已提交
385
  | callback | AsyncCallback<Array<[MissionInfo](./js-apis-inner-application-missionInfo.md)>> | 是 | 执行结果回调函数,返回任务信息数组。 |
D
donglin 已提交
386 387 388

**示例:**

M
m00512953 已提交
389
  ```ts
C
caochunlei 已提交
390 391
  import missionManager from '@ohos.app.ability.missionManager';

D
donglin 已提交
392
  try {
M
mingxihua 已提交
393
    missionManager.getMissionInfos('', 10, (error, missions) => {
C
caochunlei 已提交
394
      if (error) {
M
mingxihua 已提交
395
          console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
C
caochunlei 已提交
396
      } else {
M
mingxihua 已提交
397 398
        console.log('size = ${missions.length}');
        console.log('missions = ${JSON.stringify(missions)}');
C
caochunlei 已提交
399
      }
M
mingxihua 已提交
400
    });
D
donglin 已提交
401
  } catch (paramError) {
M
mingxihua 已提交
402
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429
  }
  ```


## missionManager.getMissionInfos

getMissionInfos(deviceId: string, numMax: number): Promise<Array<MissionInfo>>;

获取所有任务信息,以promise的方式返回任务信息数组。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | numMax | number | 是 | 任务信息数量上限。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
D
ability  
donglin 已提交
430
  | Promise<Array<[MissionInfo](./js-apis-inner-application-missionInfo.md)>> | 任务信息数组。 |
D
donglin 已提交
431 432 433

**示例:**

C
caochunlei 已提交
434 435
```ts
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
436

C
caochunlei 已提交
437
try {
M
mingxihua 已提交
438
    missionManager.getMissionInfos('', 10).then((data) => {
M
mingxihua 已提交
439
        console.info('getMissionInfos successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
440
    }).catch(error => {
M
mingxihua 已提交
441
        console.error('getMissionInfos failed. Cause: ${error.message}');
C
caochunlei 已提交
442 443
    });
} catch (error) {
M
mingxihua 已提交
444
    console.error('getMissionInfos failed. Cause: ${error.message}');
C
caochunlei 已提交
445 446
}
```
D
donglin 已提交
447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465

## missionManager.getMissionSnapShot

getMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback<MissionSnapshot>): void;

获取任务快照,以回调函数的方式返回快照内容。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |
M
m00512953 已提交
466
  | callback | AsyncCallback<[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)> | 是 | 执行结果回调函数,返回任务快照信息。 |
D
donglin 已提交
467 468

**示例:**
C
caochunlei 已提交
469 470 471 472 473
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
M
mingxihua 已提交
474
    missionManager.getMissionSnapShot('', testMissionId, (err, data) => {
C
caochunlei 已提交
475
        if (err) {
M
mingxihua 已提交
476
            console.error('getMissionSnapShot failed: ${err.message}');
C
caochunlei 已提交
477
        } else {
M
mingxihua 已提交
478
            console.info('getMissionSnapShot successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
479 480 481
        }
    });
} catch (err) {
M
mingxihua 已提交
482
    console.error('getMissionSnapShot failed: ${err.message}');
C
caochunlei 已提交
483 484
}
```
D
donglin 已提交
485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508

## missionManager.getMissionSnapShot

getMissionSnapShot(deviceId: string, missionId: number): Promise<MissionSnapshot>;

获取任务快照,以promise的方式返回快照内容。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
M
m00512953 已提交
509
  | Promise<[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)> | 任务快照信息。 |
D
donglin 已提交
510 511

**示例:**
C
caochunlei 已提交
512 513 514 515 516
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
M
mingxihua 已提交
517
    missionManager.getMissionSnapShot('', testMissionId).then((data) => {
M
mingxihua 已提交
518
        console.info('getMissionSnapShot successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
519
    }).catch(error => {
M
mingxihua 已提交
520
        console.error('getMissionSnapShot failed. Cause: ${error.message}');
C
caochunlei 已提交
521 522
    });
} catch (error) {
M
mingxihua 已提交
523
    console.error('getMissionSnapShot failed. Cause: ${error.message}');
C
caochunlei 已提交
524 525
}
```
D
donglin 已提交
526 527 528 529 530

## missionManager.getLowResolutionMissionSnapShot

getLowResolutionMissionSnapShot(deviceId: string, missionId: number, callback: AsyncCallback\<MissionSnapshot>): void;

C
caochunlei 已提交
531
获取任务低分辨率快照。
D
donglin 已提交
532 533 534 535 536 537 538 539 540 541 542 543 544

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |
M
m00512953 已提交
545
  | callback | AsyncCallback&lt;[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)&gt; | 是 | 执行结果回调函数,返回任务快照信息。 |
D
donglin 已提交
546 547

**示例:**
C
caochunlei 已提交
548 549 550 551 552
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
M
mingxihua 已提交
553
    missionManager.getLowResolutionMissionSnapShot('', testMissionId, (err, data) => {
C
caochunlei 已提交
554
        if (err) {
M
mingxihua 已提交
555
            console.error('getLowResolutionMissionSnapShot failed: ${err.message}');
C
caochunlei 已提交
556
        } else {
M
mingxihua 已提交
557
            console.info('getLowResolutionMissionSnapShot successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
558
        }
C
caochunlei 已提交
559 560
    });
} catch (err) {
M
mingxihua 已提交
561
    console.error('getLowResolutionMissionSnapShot failed: ${err.message}');
C
caochunlei 已提交
562 563
}
```
D
donglin 已提交
564 565 566 567 568

## missionManager.getLowResolutionMissionSnapShot

getLowResolutionMissionSnapShot(deviceId: string, missionId: number): Promise\<MissionSnapshot>;

C
caochunlei 已提交
569
获取任务低分辨率快照。
D
donglin 已提交
570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | deviceId | string | 是 | 设备ID,本机默认为空字符串。 |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
M
m00512953 已提交
588
  | Promise&lt;[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)&gt; | 任务快照信息。 |
D
donglin 已提交
589 590 591

**示例:**

C
caochunlei 已提交
592 593 594 595 596
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
M
mingxihua 已提交
597
    missionManager.getLowResolutionMissionSnapShot('', testMissionId).then((data) => {
M
mingxihua 已提交
598
        console.info('getLowResolutionMissionSnapShot successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
599
    }).catch(error => {
M
mingxihua 已提交
600
        console.error('getLowResolutionMissionSnapShot failed. Cause: ${error.message}');
C
caochunlei 已提交
601 602
    });
} catch (error) {
M
mingxihua 已提交
603
    console.error('getLowResolutionMissionSnapShot failed. Cause: ${error.message}');
C
caochunlei 已提交
604 605
}
```
D
donglin 已提交
606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628


## missionManager.lockMission

lockMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;

锁定指定任务id的任务,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |

**示例:**

C
caochunlei 已提交
629 630 631 632 633 634 635
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.lockMission(testMissionId, (err, data) => {
        if (err) {
M
mingxihua 已提交
636
            console.error('lockMission failed: ${err.message}');
C
caochunlei 已提交
637
        } else {
M
mingxihua 已提交
638
            console.info('lockMission successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
639
        }
D
donglin 已提交
640
    });
C
caochunlei 已提交
641
} catch (err) {
M
mingxihua 已提交
642
    console.error('lockMission failed: ${err.message}');
C
caochunlei 已提交
643 644
}
```
D
donglin 已提交
645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665

## missionManager.lockMission

lockMission(missionId: number): Promise&lt;void&gt;;

锁定指定任务id的任务,以promise方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

C
caochunlei 已提交
666
  | 类型 | 说明 |
D
donglin 已提交
667
  | -------- | -------- |
C
caochunlei 已提交
668
  | Promise&lt;void&gt; | promise方式返回执行结果。 |
D
donglin 已提交
669 670

**示例:**
C
caochunlei 已提交
671 672 673 674 675 676
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.lockMission(testMissionId).then((data) => {
M
mingxihua 已提交
677
        console.info('lockMission successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
678
    }).catch(error => {
M
mingxihua 已提交
679
        console.error('lockMission failed. Cause: ${error.message}');
D
donglin 已提交
680
    });
C
caochunlei 已提交
681
} catch (error) {
M
mingxihua 已提交
682
    console.error('lockMission failed. Cause: ${error.message}');
C
caochunlei 已提交
683 684
}
```
D
donglin 已提交
685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705

## missionManager.unlockMission

unlockMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;

解锁指定任务id的任务,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| missionId | number | 是 | 任务ID。 |
| callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |

**示例:**
C
caochunlei 已提交
706 707 708 709 710 711 712
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.unlockMission(testMissionId, (err, data) => {
        if (err) {
M
mingxihua 已提交
713
            console.error('unlockMission failed: ${err.message}');
C
caochunlei 已提交
714
        } else {
M
mingxihua 已提交
715
            console.info('unlockMission successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
716
        }
D
donglin 已提交
717
    });
C
caochunlei 已提交
718
} catch (err) {
M
mingxihua 已提交
719
    console.error('unlockMission failed: ${err.message}');
C
caochunlei 已提交
720 721
}
```
D
donglin 已提交
722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742

## missionManager.unlockMission

unlockMission(missionId: number): Promise&lt;void&gt;;

解锁指定任务id的任务,以promise的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

C
caochunlei 已提交
743
  | 类型 | 说明 |
D
donglin 已提交
744
  | -------- | -------- |
C
caochunlei 已提交
745
  | Promise&lt;void&gt; | promise方式返回执行结果。 |
D
donglin 已提交
746 747 748

**示例:**

C
caochunlei 已提交
749 750 751 752 753 754
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.unlockMission(testMissionId).then((data) => {
M
mingxihua 已提交
755
        console.info('unlockMission successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
756
    }).catch(error => {
M
mingxihua 已提交
757
        console.error('unlockMission failed. Cause: ${error.message}');
D
donglin 已提交
758
    });
C
caochunlei 已提交
759
} catch (error) {
M
mingxihua 已提交
760
    console.error('unlockMission failed. Cause: ${error.message}');
C
caochunlei 已提交
761 762
}
```
D
donglin 已提交
763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784

## missionManager.clearMission

clearMission(missionId: number, callback: AsyncCallback&lt;void&gt;): void;

清理指定任务id的任务,无论该任务是否被锁定,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |

**示例:**

C
caochunlei 已提交
785 786 787 788 789 790 791
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.clearMission(testMissionId, (err, data) => {
        if (err) {
M
mingxihua 已提交
792
            console.error('clearMission failed: ${err.message}');
C
caochunlei 已提交
793
        } else {
M
mingxihua 已提交
794
            console.info('clearMission successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
795
        }
D
donglin 已提交
796
    });
C
caochunlei 已提交
797
} catch (err) {
M
mingxihua 已提交
798
    console.error('clearMission failed: ${err.message}');
C
caochunlei 已提交
799 800
}
```
D
donglin 已提交
801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822


## missionManager.clearMission

clearMission(missionId: number): Promise&lt;void&gt;;

清理指定任务id的任务,无论该任务是否被锁定,以promise的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |

**返回值:**

C
caochunlei 已提交
823
  | 类型 | 说明 |
D
donglin 已提交
824
  | -------- | -------- |
C
caochunlei 已提交
825
  | Promise&lt;void&gt; | promise方式返回执行结果。 |
D
donglin 已提交
826 827 828

**示例:**

C
caochunlei 已提交
829 830 831 832 833 834
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.clearMission(testMissionId).then((data) => {
M
mingxihua 已提交
835
        console.info('clearMission successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
836
    }).catch(error => {
M
mingxihua 已提交
837
        console.error('clearMission failed. Cause: ${error.message}');
D
donglin 已提交
838
    });
C
caochunlei 已提交
839
} catch (error) {
M
mingxihua 已提交
840
    console.error('clearMission failed. Cause: ${error.message}');
C
caochunlei 已提交
841 842
}
```
D
donglin 已提交
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857

## missionManager.clearAllMissions

clearAllMissions(callback: AsyncCallback&lt;void&gt;): void;

清理所有未锁定的任务,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**示例:**

C
caochunlei 已提交
858 859 860 861 862 863
```ts
import missionManager from '@ohos.app.ability.missionManager';

try {
    missionManager.clearAllMissions(err => {
        if (err) {
M
mingxihua 已提交
864
            console.error('clearAllMissions failed: ${err.message}');
C
caochunlei 已提交
865 866 867 868 869
        } else {
            console.info('clearAllMissions successfully.');
        }
    });
} catch (err) {
M
mingxihua 已提交
870
    console.error('clearAllMissions failed: ${err.message}');
C
caochunlei 已提交
871 872
}
```
D
donglin 已提交
873 874 875 876 877 878 879 880 881 882 883 884 885 886 887

## missionManager.clearAllMissions

clearAllMissions(): Promise&lt;void&gt;;

清理所有未锁定的任务,以promise的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**返回值:**

C
caochunlei 已提交
888
  | 类型 | 说明 |
D
donglin 已提交
889
  | -------- | -------- |
C
caochunlei 已提交
890
  | Promise&lt;void&gt; | promise方式返回执行结果。 |
D
donglin 已提交
891 892 893

**示例:**

C
caochunlei 已提交
894 895
```ts
import missionManager from '@ohos.app.ability.missionManager';
D
donglin 已提交
896

C
caochunlei 已提交
897 898 899 900
try {
    missionManager.clearAllMissions(bundleName).then(() => {
        console.info('clearAllMissions successfully.');
    }).catch(err => {
M
mingxihua 已提交
901
        console.error('clearAllMissions failed: ${err.message}');
C
caochunlei 已提交
902 903
    });
} catch (err) {
M
mingxihua 已提交
904
    console.error('clearAllMissions failed: ${err.message}');
C
caochunlei 已提交
905 906
}
```
D
donglin 已提交
907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928

## missionManager.moveMissionToFront

moveMissionToFront(missionId: number, callback: AsyncCallback&lt;void&gt;): void;

把指定任务id的任务切到前台,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |

**示例:**

C
caochunlei 已提交
929 930 931 932 933 934 935
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId, (err, data) => {
        if (err) {
M
mingxihua 已提交
936
            console.error('moveMissionToFront failed: ${err.message}');
C
caochunlei 已提交
937
        } else {
M
mingxihua 已提交
938
            console.info('moveMissionToFront successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
939
        }
D
donglin 已提交
940
    });
C
caochunlei 已提交
941
} catch (err) {
M
mingxihua 已提交
942
    console.error('moveMissionToFront failed: ${err.message}');
C
caochunlei 已提交
943 944
}
```
D
donglin 已提交
945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962

## missionManager.moveMissionToFront

moveMissionToFront(missionId: number, options: StartOptions, callback: AsyncCallback&lt;void&gt;): void;

把指定任务id的任务切到前台,同时指定任务切换到前台时的启动参数,例如窗口模式、设备ID等,以回调函数的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |
M
m00512953 已提交
963
  | options | [StartOptions](js-apis-app-ability-startOptions.md) | 是 | 启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。 |
D
donglin 已提交
964 965 966 967
  | callback | AsyncCallback&lt;void&gt; | 是 | 执行结果回调函数。 |

**示例:**

C
caochunlei 已提交
968 969 970 971 972 973 974
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId, {windowMode : 101}, (err, data) => {
        if (err) {
M
mingxihua 已提交
975
            console.error('moveMissionToFront failed: ${err.message}');
C
caochunlei 已提交
976
        } else {
M
mingxihua 已提交
977
            console.info('moveMissionToFront successfully: ${JSON.stringify(data)}');
C
caochunlei 已提交
978
        }
D
donglin 已提交
979
    });
C
caochunlei 已提交
980
} catch (err) {
M
mingxihua 已提交
981
    console.error('moveMissionToFront failed: ${err.message}');
C
caochunlei 已提交
982 983
}
```
D
donglin 已提交
984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001

## missionManager.moveMissionToFront

moveMissionToFront(missionId: number, options?: StartOptions): Promise&lt;void&gt;;

把指定任务id的任务切到前台,同时指定任务切换到前台时的启动参数,例如窗口模式、设备ID等,以promise的方式返回。

**需要权限**:ohos.permission.MANAGE_MISSIONS

**系统能力**:SystemCapability.Ability.AbilityRuntime.Mission

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | missionId | number | 是 | 任务ID。 |
M
m00512953 已提交
1002
  | options | [StartOptions](js-apis-app-ability-startOptions.md) | 否 | 启动参数选项,用于指定任务切到前台时的窗口模式,设备ID等。 |
D
donglin 已提交
1003 1004 1005

**返回值:**

C
caochunlei 已提交
1006
  | 类型 | 说明 |
D
donglin 已提交
1007
  | -------- | -------- |
C
caochunlei 已提交
1008
  | Promise&lt;void&gt; | promise方式返回执行结果。 |
D
donglin 已提交
1009 1010 1011

**示例:**

C
caochunlei 已提交
1012 1013 1014 1015 1016 1017
```ts
import missionManager from '@ohos.app.ability.missionManager';

let testMissionId = 2;
try {
    missionManager.moveMissionToFront(testMissionId).then((data) => {
M
mingxihua 已提交
1018
        console.info('moveMissionToFront successfully. Data: ${JSON.stringify(data)}');
C
caochunlei 已提交
1019
    }).catch(error => {
M
mingxihua 已提交
1020
        console.error('moveMissionToFront failed. Cause: ${error.message}');
D
donglin 已提交
1021
    });
C
caochunlei 已提交
1022
} catch (error) {
M
mingxihua 已提交
1023
    console.error('moveMissionToFront failed. Cause: ${error.message}');
C
caochunlei 已提交
1024 1025
}
```