js-apis-app-ability-appManager.md 30.9 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.appManager (appManager)
D
donglin 已提交
2 3 4 5 6 7 8 9 10

appManager模块提供App管理的能力,包括查询当前是否处于稳定性测试场景、查询是否为ram受限设备、获取应用程序的内存大小、获取有关运行进程的信息等。

> **说明:**
> 
> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

M
m00512953 已提交
11
```ts
D
merge  
donglin 已提交
12
import appManager from '@ohos.app.ability.appManager';
D
donglin 已提交
13 14
```

D
donglin 已提交
15
## appManager.isRunningInStabilityTest
D
donglin 已提交
16 17 18 19 20 21 22

static isRunningInStabilityTest(callback: AsyncCallback<boolean>): void

查询当前是否处于稳定性测试场景。

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

D
donglin 已提交
23
**返回值:**
D
donglin 已提交
24

D
donglin 已提交
25 26 27
  | 类型| 说明 | 
  | -------- | -------- |
  |AsyncCallback<boolean> |以回调方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。true: 处于稳定性测试场景,false:处于非稳定性测试场景。 | 
D
donglin 已提交
28

D
donglin 已提交
29 30 31 32 33 34 35 36
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
37
**示例:**
38

D
donglin 已提交
39
```ts
40 41
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
42
appManager.isRunningInStabilityTest((err, flag) => {
43
    if (err.code !== 0) {
D
donglin 已提交
44
        console.log("isRunningInStabilityTest faile, err: " + JSON.stringify(err));
D
donglin 已提交
45 46 47
    } else {
        console.log("The result of isRunningInStabilityTest is:" + JSON.stringify(flag));
    }
D
donglin 已提交
48 49
})  
```
D
donglin 已提交
50 51


D
donglin 已提交
52
## appManager.isRunningInStabilityTest
D
donglin 已提交
53 54 55 56 57 58 59 60 61 62 63

static isRunningInStabilityTest(): Promise<boolean>

查询当前是否处于稳定性测试场景。

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

**返回值:**

  | 类型 | 说明 | 
  | -------- | -------- |
D
donglin 已提交
64
  | Promise<boolean> | 以Promise方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。true: 处于稳定性测试场景,false:处于非稳定性测试场景。 | 
D
donglin 已提交
65

D
donglin 已提交
66 67 68 69 70 71 72 73
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
74
**示例:**
75

D
donglin 已提交
76
```ts
77 78
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
79
appManager.isRunningInStabilityTest().then((flag) => {
D
donglin 已提交
80
    console.log("The result of isRunningInStabilityTest is:" + JSON.stringify(flag));
D
donglin 已提交
81
}).catch((error) => {
D
donglin 已提交
82
    console.log("error:" + JSON.stringify(error));
D
donglin 已提交
83 84
});
```
D
donglin 已提交
85 86 87 88 89 90 91 92 93 94 95 96 97 98


## appManager.isRamConstrainedDevice

isRamConstrainedDevice(): Promise\<boolean>;

查询是否为ram受限设备。

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

**返回值:**

  | 类型 | 说明 | 
  | -------- | -------- |
D
donglin 已提交
99
  | Promise&lt;boolean&gt; | 以Promise方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | 
D
donglin 已提交
100

D
donglin 已提交
101 102 103 104 105 106 107 108
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
109
**示例:**
110

D
donglin 已提交
111
```ts
112 113
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
114
appManager.isRamConstrainedDevice().then((data) => {
D
donglin 已提交
115
    console.log("The result of isRamConstrainedDevice is:" + JSON.stringify(data));
D
donglin 已提交
116
}).catch((error) => {
D
donglin 已提交
117
    console.log("error:" + JSON.stringify(error));
D
donglin 已提交
118 119
});
```
D
donglin 已提交
120 121 122 123 124 125 126 127 128

## appManager.isRamConstrainedDevice

isRamConstrainedDevice(callback: AsyncCallback\<boolean>): void;

查询是否为ram受限设备。

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

D
donglin 已提交
129
**返回值:**
D
donglin 已提交
130

D
donglin 已提交
131 132 133
  | 类型 | 说明 | 
  | -------- | -------- |
  | AsyncCallback&lt;boolean&gt; |以回调方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | 
D
donglin 已提交
134

D
donglin 已提交
135 136 137 138 139 140 141 142
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
143
**示例:**
144

D
donglin 已提交
145
```ts
146 147
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
148
appManager.isRamConstrainedDevice((err, data) => {
149
    if (err.code !== 0) {
D
donglin 已提交
150 151 152 153
        console.log("isRamConstrainedDevice faile, err: " + JSON.stringify(err));
    } else {
        console.log("The result of isRamConstrainedDevice is:" + JSON.stringify(data));
    }
D
donglin 已提交
154 155
})
```
D
donglin 已提交
156 157 158 159 160 161 162 163 164 165 166 167 168

## appManager.getAppMemorySize

getAppMemorySize(): Promise\<number>;

获取应用程序的内存大小。

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

**返回值:**

  | 类型 | 说明 | 
  | -------- | -------- |
D
donglin 已提交
169
  | Promise&lt;number&gt; | 以Promise方式返回接口运行结果及应用程序内存大小,可进行错误处理或其他自定义处理。 | 
D
donglin 已提交
170

D
donglin 已提交
171 172 173 174 175 176 177 178
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
179
**示例:**
180

D
donglin 已提交
181
```ts
182 183
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
184
appManager.getAppMemorySize().then((data) => {
D
donglin 已提交
185
    console.log("The size of app memory is:" + JSON.stringify(data));
D
donglin 已提交
186
}).catch((error) => {
D
donglin 已提交
187
    console.log("error:" + JSON.stringify(error));
D
donglin 已提交
188 189
});
```
D
donglin 已提交
190 191 192 193 194 195 196 197 198

## appManager.getAppMemorySize

getAppMemorySize(callback: AsyncCallback\<number>): void;

获取应用程序的内存大小。

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

D
donglin 已提交
199
**返回值:**
D
donglin 已提交
200

D
donglin 已提交
201 202 203
  | 类型 | 说明 | 
  | -------- | -------- |
  |AsyncCallback&lt;number&gt; |以回调方式返回接口运行结果及应用程序内存大小,可进行错误处理或其他自定义处理。 | 
D
donglin 已提交
204

D
donglin 已提交
205 206 207 208 209 210 211 212
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
213
**示例:**
214

D
donglin 已提交
215
```ts
216 217
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
218
appManager.getAppMemorySize((err, data) => {
219
    if (err.code !== 0) {
D
donglin 已提交
220 221 222 223
        console.log("getAppMemorySize faile, err: " + JSON.stringify(err));
    } else {
        console.log("The size of app memory is:" + JSON.stringify(data));
    }
D
donglin 已提交
224 225
})
```
M
m00512953 已提交
226

D
donglin 已提交
227
## appManager.getProcessRunningInformation
D
donglin 已提交
228 229 230 231 232 233 234 235 236

getProcessRunningInformation(): Promise\<Array\<ProcessRunningInformation>>;

获取有关运行进程的信息。

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

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

D
fix  
donglin 已提交
237 238
**系统API**: 此接口为系统接口,三方应用不支持调用。

D
donglin 已提交
239 240 241 242
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
D
donglin 已提交
243
| Promise\<Array\<[ProcessRunningInformation](js-apis-inner-application-processRunningInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
244

D
donglin 已提交
245 246 247 248 249 250 251 252
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
253
**示例:**
254

D
donglin 已提交
255
```ts
256 257
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
258
appManager.getProcessRunningInformation().then((data) => {
D
donglin 已提交
259
    console.log("The process running information is:" + JSON.stringify(data));
D
donglin 已提交
260
}).catch((error) => {
D
donglin 已提交
261
    console.log("error:" + JSON.stringify(error));
D
donglin 已提交
262 263
});
```
D
donglin 已提交
264

M
m00512953 已提交
265
## appManager.getProcessRunningInformation<sup>9+</sup>
D
donglin 已提交
266 267 268 269 270 271 272 273 274

getProcessRunningInformation(callback: AsyncCallback\<Array\<ProcessRunningInformation>>): void;

获取有关运行进程的信息。

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

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

D
ability  
donglin 已提交
275 276
**系统API**: 此接口为系统接口,三方应用不支持调用。

D
donglin 已提交
277
**返回值:**
D
donglin 已提交
278

D
donglin 已提交
279 280 281
| 类型 | 说明 |
| -------- | -------- |
|AsyncCallback\<Array\<[ProcessRunningInformation](js-apis-inner-application-processRunningInformation.md)>> | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
282

D
donglin 已提交
283 284 285 286 287 288 289 290
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
291
**示例:**
292

D
donglin 已提交
293
```ts
294 295
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
296
appManager.getProcessRunningInformation((err, data) => {
297
    if (err.code !== 0) {
D
donglin 已提交
298 299 300 301
        console.log("getProcessRunningInformation faile, err: " + JSON.stringify(err));
    } else {
        console.log("The process running information is:" + JSON.stringify(data));
    }
D
donglin 已提交
302 303
})
```
D
donglin 已提交
304 305 306 307 308

## appManager.on

on(type: "applicationState", observer: ApplicationStateObserver): number;

309
注册全部应用程序的状态观测器。
D
donglin 已提交
310 311 312 313 314 315 316 317 318 319 320

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
donglin 已提交
321
| type | string | 是 | 调用接口类型,固定填"applicationState"字符串。 |
D
donglin 已提交
322 323 324 325 326 327
| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 |

**返回值:**

| 类型 | 说明 |
| --- | --- |
328
| number | 已注册观测器的数字代码,可用于off接口取消注册观测器。|
D
donglin 已提交
329

D
donglin 已提交
330 331 332 333 334 335 336 337
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
338
**示例:**
339

D
donglin 已提交
340
```ts
341 342
import appManager from '@ohos.app.ability.appManager';

343
let applicationStateObserver = {
D
donglin 已提交
344
    onForegroundApplicationChanged(appStateData) {
345
        console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
D
donglin 已提交
346 347
    },
    onAbilityStateChanged(abilityStateData) {
348
        console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
D
donglin 已提交
349 350
    },
    onProcessCreated(processData) {
351
        console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
D
donglin 已提交
352 353
    },
    onProcessDied(processData) {
354
        console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
D
donglin 已提交
355 356
    },
    onProcessStateChanged(processData) {
357
        console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
D
donglin 已提交
358
    }
D
donglin 已提交
359 360
}
try {
D
donglin 已提交
361 362
    const observerId = appManager.on('applicationState', applicationStateObserver);
    console.log(`[appManager] observerCode: ${observerId}`);
D
donglin 已提交
363
} catch (paramError) {
364
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
D
donglin 已提交
365 366
}
```
D
donglin 已提交
367 368 369 370 371

## appManager.on

on(type: "applicationState", observer: ApplicationStateObserver, bundleNameList: Array\<string>): number;

372
注册指定应用程序的状态观测器。
D
donglin 已提交
373 374 375 376 377 378 379 380 381 382 383

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
donglin 已提交
384
| type | string | 是 | 调用接口类型,固定填"applicationState"字符串。 |
D
donglin 已提交
385
| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 |
386
| bundleNameList | `Array<string>` | 是 | 表示需要注册监听的bundleName数组。最大值128。 |
D
donglin 已提交
387

D
donglin 已提交
388 389 390 391 392 393
**返回值:**

| 类型 | 说明 |
| --- | --- |
| number | 已注册观测器的数字代码,可用于off接口注销观测器。|

D
donglin 已提交
394 395 396 397 398 399 400 401
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
402
**示例:**
403

D
donglin 已提交
404
```ts
405 406
import appManager from '@ohos.app.ability.appManager';

407
let applicationStateObserver = {
D
donglin 已提交
408
    onForegroundApplicationChanged(appStateData) {
409
        console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
D
donglin 已提交
410 411
    },
    onAbilityStateChanged(abilityStateData) {
412
        console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
D
donglin 已提交
413 414
    },
    onProcessCreated(processData) {
415
        console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
D
donglin 已提交
416 417
    },
    onProcessDied(processData) {
418
        console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
D
donglin 已提交
419 420
    },
    onProcessStateChanged(processData) {
421
        console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
D
donglin 已提交
422
    }
D
donglin 已提交
423
}
424
let bundleNameList = ['bundleName1', 'bundleName2'];
D
donglin 已提交
425
try {
D
donglin 已提交
426 427
    const observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList);
    console.log(`[appManager] observerCode: ${observerId}`);
D
donglin 已提交
428
} catch (paramError) {
429
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
D
donglin 已提交
430
}
431
```
D
donglin 已提交
432 433 434 435 436 437 438 439 440 441 442 443 444 445

## appManager.off

off(type: "applicationState", observerId: number,  callback: AsyncCallback\<void>): void;

取消注册应用程序状态观测器。

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

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

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

**参数:**
446

D
donglin 已提交
447 448
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
donglin 已提交
449 450
| type | string | 是 | 调用接口类型,固定填"applicationState"字符串。 |
| observerId | number | 是 | 表示观测器的编号代码。 |
D
donglin 已提交
451
| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
452

D
donglin 已提交
453 454 455 456 457 458 459 460
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
461
**示例:**
462

D
donglin 已提交
463
```ts
464
import appManager from '@ohos.app.ability.appManager';
D
donglin 已提交
465

466
let observeId = 0;
D
donglin 已提交
467

D
donglin 已提交
468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494
// 1.注册应用状态监听器
let applicationStateObserver = {
    onForegroundApplicationChanged(appStateData) {
        console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
    },
    onAbilityStateChanged(abilityStateData) {
        console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
    },
    onProcessCreated(processData) {
        console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
    },
    onProcessDied(processData) {
        console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
    },
    onProcessStateChanged(processData) {
        console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
    }
}
let bundleNameList = ['bundleName1', 'bundleName2'];
try {
    observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList);
    console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}

// 2.注销应用状态监听器
D
donglin 已提交
495
function unregisterApplicationStateObserverCallback(err) {
496
    if (err.code !== 0) {
D
donglin 已提交
497 498 499
        console.log("unregisterApplicationStateObserverCallback faile, err: " + JSON.stringify(err));
    } else {
        console.log("unregisterApplicationStateObserverCallback success.");
D
donglin 已提交
500
    }
D
donglin 已提交
501 502
}
try {
D
donglin 已提交
503
    appManager.off("applicationState", observerId, unregisterApplicationStateObserverCallback);
D
donglin 已提交
504 505 506 507
} catch (paramError) {
    console.log('error: ' + paramError.code + ', ' + paramError.message);
}
```
D
donglin 已提交
508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524

## appManager.off

off(type: "applicationState", observerId: number): Promise\<void>;

取消注册应用程序状态观测器。

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
donglin 已提交
525 526
| type | string | 是 | 调用接口类型,固定填"applicationState"字符串。 |
| observerId | number | 是 | 表示观测器的编号代码。 |
D
donglin 已提交
527 528 529 530 531

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
D
donglin 已提交
532
| Promise\<void> | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
533

D
donglin 已提交
534 535 536 537 538 539 540 541
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
542
**示例:**
543

D
donglin 已提交
544
```ts
545 546 547
import appManager from '@ohos.app.ability.appManager';

let observeId = 0;
D
donglin 已提交
548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573

// 1.注册应用状态监听器
let applicationStateObserver = {
    onForegroundApplicationChanged(appStateData) {
        console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
    },
    onAbilityStateChanged(abilityStateData) {
        console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
    },
    onProcessCreated(processData) {
        console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
    },
    onProcessDied(processData) {
        console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
    },
    onProcessStateChanged(processData) {
        console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
    }
}
let bundleNameList = ['bundleName1', 'bundleName2'];
try {
    observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList);
    console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
D
donglin 已提交
574
    
D
donglin 已提交
575
// 2.注销应用状态监听器
D
donglin 已提交
576
try {
D
donglin 已提交
577
    appManager.off("applicationState", observerId).then((data) => {
D
donglin 已提交
578
        console.log("unregisterApplicationStateObserver success, data: " + JSON.stringify(data));
D
donglin 已提交
579
    }).catch((err) => {
D
donglin 已提交
580
        console.log("unregisterApplicationStateObserver faile, err: " + JSON.stringify(err));
D
donglin 已提交
581 582 583 584 585
    })
} catch (paramError) {
    console.log('error: ' + paramError.code + ', ' + paramError.message);
}
```
D
donglin 已提交
586 587 588 589 590

## appManager.getForegroundApplications

getForegroundApplications(callback: AsyncCallback\<Array\<AppStateData>>): void;

D
donglin 已提交
591
获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。
D
donglin 已提交
592 593 594 595 596 597 598

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

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

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

D
donglin 已提交
599
**错误码**
D
donglin 已提交
600

D
donglin 已提交
601 602 603
| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |
D
donglin 已提交
604

D
donglin 已提交
605
以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)
M
m00512953 已提交
606 607 608 609 610

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
donglin 已提交
611
| callback | AsyncCallback\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | 是 | 以Promise方式返回接口运行结果及应用状态数据数组,可进行错误处理或其他自定义处理。 |
M
m00512953 已提交
612 613

**示例:**
614

D
donglin 已提交
615
```ts
616 617
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
618
function getForegroundApplicationsCallback(err, data) {
619
    if (err.code !== 0) {
D
donglin 已提交
620
        console.log("getForegroundApplicationsCallback fail, err: " + JSON.stringify(err));
M
m00512953 已提交
621
    } else {
D
donglin 已提交
622
        console.log("getForegroundApplicationsCallback success, data: " + JSON.stringify(data));
M
m00512953 已提交
623
    }
D
donglin 已提交
624 625
}
try {
D
donglin 已提交
626
    appManager.getForegroundApplications(getForegroundApplicationsCallback);
D
donglin 已提交
627
} catch (paramError) {
D
donglin 已提交
628
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
629 630
}
```
M
m00512953 已提交
631

D
donglin 已提交
632
## appManager.getForegroundApplications
D
donglin 已提交
633 634 635

getForegroundApplications(): Promise\<Array\<AppStateData>>;

D
donglin 已提交
636
获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。
D
donglin 已提交
637 638 639 640 641 642 643 644 645 646 647

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

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

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

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
D
donglin 已提交
648
| Promise\<Array\<[AppStateData](js-apis-inner-application-appStateData.md)>> | 返回前台进程应用程序的数组。 |
D
donglin 已提交
649

D
donglin 已提交
650 651 652 653 654 655 656 657
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
658
**示例:**
659

D
donglin 已提交
660
```ts
661 662
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
663
appManager.getForegroundApplications().then((data) => {
D
donglin 已提交
664
    console.log("getForegroundApplications success, data: " + JSON.stringify(data));
D
donglin 已提交
665
}).catch((err) => {
D
donglin 已提交
666
    console.log("getForegroundApplications fail, err: " + JSON.stringify(err));
D
donglin 已提交
667 668
})
```
D
donglin 已提交
669

D
donglin 已提交
670
## appManager.killProcessWithAccount
D
donglin 已提交
671 672 673 674 675

killProcessWithAccount(bundleName: string, accountId: number): Promise\<void\>

切断account进程(Promise形式)。

D
donglin 已提交
676
**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
D
donglin 已提交
677 678 679 680 681 682 683

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

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

**参数:**

684 685 686 687
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| bundleName | string | 是 | 应用Bundle名称。 |
| accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 |
D
donglin 已提交
688

D
donglin 已提交
689 690 691 692 693 694 695 696
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
697 698
**示例:**

M
m00512953 已提交
699
```ts
700 701
import appManager from '@ohos.app.ability.appManager';

702 703
let bundleName = 'bundleName';
let accountId = 0;
D
donglin 已提交
704
try {
D
donglin 已提交
705 706
    appManager.killProcessWithAccount(bundleName, accountId).then(() => {
        console.log("killProcessWithAccount success");
D
donglin 已提交
707
    }).catch((err) => {
D
donglin 已提交
708
        console.log("killProcessWithAccount fail, err: " + JSON.stringify(err));
D
donglin 已提交
709
    })
D
donglin 已提交
710
} catch (paramError) {
D
donglin 已提交
711
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
712
}
D
donglin 已提交
713 714 715
```


D
donglin 已提交
716
## appManager.killProcessWithAccount
D
donglin 已提交
717 718 719 720 721 722 723 724 725

killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\<void\>): void

切断account进程(callback形式)。

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

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

D
donglin 已提交
726
**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
D
donglin 已提交
727 728 729 730 731

**参数:**

  | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
732
  | bundleName | string | 是 | 应用Bundle名称。 | 
D
donglin 已提交
733
  | accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 | 
D
donglin 已提交
734
  | callback | AsyncCallback\<void\> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | 
D
donglin 已提交
735

D
donglin 已提交
736 737 738 739 740 741 742 743
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
744 745
**示例:**

M
m00512953 已提交
746
```ts
747 748
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
749 750
let bundleName = 'bundleName';
let accountId = 0;
D
donglin 已提交
751
function killProcessWithAccountCallback(err, data) {
752
    if (err.code !== 0) {
D
donglin 已提交
753
        console.log("killProcessWithAccountCallback fail, err: " + JSON.stringify(err));
D
donglin 已提交
754
    } else {
D
donglin 已提交
755
        console.log("killProcessWithAccountCallback success.");
D
donglin 已提交
756
    }
D
donglin 已提交
757
}
D
donglin 已提交
758
appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
D
donglin 已提交
759 760
```

D
donglin 已提交
761
## appManager.killProcessesByBundleName
D
donglin 已提交
762 763 764

killProcessesByBundleName(bundleName: string, callback: AsyncCallback\<void>);

765
通过Bundle名称终止进程。
D
donglin 已提交
766 767 768 769 770 771 772 773 774 775 776

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
777
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
778
| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
779

D
donglin 已提交
780 781 782 783 784 785 786 787
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
788
**示例:**
789

D
donglin 已提交
790
```ts
791 792
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
793
let bundleName = 'bundleName';
D
donglin 已提交
794
function killProcessesByBundleNameCallback(err, data) {
795
    if (err.code !== 0) {
D
donglin 已提交
796
        console.log("killProcessesByBundleNameCallback fail, err: " + JSON.stringify(err));
M
m00512953 已提交
797
    } else {
D
donglin 已提交
798
        console.log("killProcessesByBundleNameCallback success.");
D
donglin 已提交
799
    }
D
donglin 已提交
800 801
}
try {
D
donglin 已提交
802
    appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
D
donglin 已提交
803
} catch (paramError) {
D
donglin 已提交
804
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
805 806
}
```
D
donglin 已提交
807

D
donglin 已提交
808
## appManager.killProcessesByBundleName
D
donglin 已提交
809 810 811

killProcessesByBundleName(bundleName: string): Promise\<void>;

812
通过Bundle名称终止进程。
D
donglin 已提交
813 814 815 816 817 818 819 820 821 822 823

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
824
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
825 826 827 828 829 830 831

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| Promise\<void> | 返回执行结果。 |

D
donglin 已提交
832 833 834 835 836 837 838 839
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
840
**示例:**
841

D
donglin 已提交
842
```ts
843 844
import appManager from '@ohos.app.ability.appManager';

845
let bundleName = 'bundleName';
D
donglin 已提交
846 847
try {
    appManager.killProcessesByBundleName(bundleName).then((data) => {
D
donglin 已提交
848
        console.log("killProcessesByBundleName success.");
D
donglin 已提交
849
    }).catch((err) => {
D
donglin 已提交
850
        console.log("killProcessesByBundleName fail, err: " + JSON.stringify(err));
D
donglin 已提交
851
    })
D
donglin 已提交
852
} catch (paramError) {
D
donglin 已提交
853
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
854 855
}
```
D
donglin 已提交
856

D
donglin 已提交
857
## appManager.clearUpApplicationData
D
donglin 已提交
858 859 860

clearUpApplicationData(bundleName: string, callback: AsyncCallback\<void>);

861
通过Bundle名称清除应用数据。
D
donglin 已提交
862 863 864 865 866 867 868 869 870 871 872

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
873
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
874
| callback | AsyncCallback\<void> | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
875

D
donglin 已提交
876 877 878 879 880 881 882 883
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
884
**示例:**
885

D
donglin 已提交
886
```ts
887 888
import appManager from '@ohos.app.ability.appManager';

889
let bundleName = 'bundleName';
D
donglin 已提交
890
function clearUpApplicationDataCallback(err, data) {
M
m00512953 已提交
891
    if (err) {
D
donglin 已提交
892
        console.log("clearUpApplicationDataCallback fail, err: " + JSON.stringify(err));
M
m00512953 已提交
893
    } else {
D
donglin 已提交
894
        console.log("clearUpApplicationDataCallback success.");
D
donglin 已提交
895
    }
D
donglin 已提交
896 897
}
try {
D
donglin 已提交
898
    appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
D
donglin 已提交
899
} catch (paramError) {
D
donglin 已提交
900
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
901 902
}
```
D
donglin 已提交
903

D
donglin 已提交
904
## appManager.clearUpApplicationData
D
donglin 已提交
905 906 907

clearUpApplicationData(bundleName: string): Promise\<void>;

908
通过Bundle名称清除应用数据。
D
donglin 已提交
909 910 911 912 913 914 915 916 917 918 919

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
920
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
921 922 923 924 925

**返回值:**

| 类型 | 说明 |
| -------- | -------- |
D
donglin 已提交
926
| Promise\<void> | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 |
D
donglin 已提交
927

D
donglin 已提交
928 929 930 931 932 933 934 935
**错误码**

| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |

以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)

D
donglin 已提交
936
**示例:**
937

D
donglin 已提交
938
```ts
939 940
import appManager from '@ohos.app.ability.appManager';

941
let bundleName = 'bundleName';
D
donglin 已提交
942 943
try {
    appManager.clearUpApplicationData(bundleName).then((data) => {
D
donglin 已提交
944
        console.log("clearUpApplicationData success.");
D
donglin 已提交
945
    }).catch((err) => {
D
donglin 已提交
946
        console.log("clearUpApplicationData fail, err: " + JSON.stringify(err));
D
donglin 已提交
947 948
    })
} catch (paramError) {
D
donglin 已提交
949
    console.log("error: " + paramError.code + ", " + paramError.message);
D
donglin 已提交
950 951
}
```
D
donglin 已提交
952

D
donglin 已提交
953
## ApplicationState
D
donglin 已提交
954

D
donglin 已提交
955 956
应用状态,该类型为枚举,可配合[AbilityStateData](js-apis-inner-application-appStateData.md)返回相应的应用状态。

D
donglin 已提交
957 958 959 960
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

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

961
| 名称                 | 值  | 说明                               |
D
donglin 已提交
962 963 964 965 966 967 968
| -------------------- | --- | --------------------------------- |
| STATE_CREATE    | 1   |   当应用在创建中的时候处于的状态。         |
| STATE_FOREGROUND          | 2   |      当应用切换到前台的时候处于的状态。            |
| STATE_ACTIVE  | 3   |         当应用在获焦的时候处于的状态。     |
| STATE_BACKGROUND        | 4   |       当应用处于后台不可见时处于的状态。           |
| STATE_DESTROY        | 5   |           当应用在销毁的时候处于的状态。       |

D
donglin 已提交
969
## ProcessState
D
donglin 已提交
970

D
donglin 已提交
971 972
进程状态,该类型为枚举,可配合[ProcessData](js-apis-inner-application-processData.md)返回相应的进程状态。

D
donglin 已提交
973 974 975 976
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

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

977
| 名称                 | 值  | 说明                               |
D
donglin 已提交
978 979 980 981 982 983
| -------------------- | --- | --------------------------------- |
| STATE_CREATE    | 1   |      当进程在创建中的时候处于的状态。       |
| STATE_FOREGROUND          | 2   |            当进程切换到前台的时候处于的状态。      |
| STATE_ACTIVE  | 3   |          当进程在获焦的时候处于的状态。   |
| STATE_BACKGROUND        | 4   |       当进程处于后台不可见时处于的状态。           |
| STATE_DESTROY        | 5   |         当进程在销毁的时候处于的状态。         |