js-apis-app-ability-appManager.md 30.7 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) => {
D
donglin 已提交
43
    if (err && err.code !== 0) {
M
mingxihua 已提交
44
        console.log('isRunningInStabilityTest fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
45
    } else {
M
mingxihua 已提交
46
        console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
D
donglin 已提交
47
    }
M
mingxihua 已提交
48
});  
D
donglin 已提交
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) => {
M
mingxihua 已提交
80
    console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
D
donglin 已提交
81
}).catch((error) => {
M
mingxihua 已提交
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) => {
M
mingxihua 已提交
115
    console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
D
donglin 已提交
116
}).catch((error) => {
M
mingxihua 已提交
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) => {
D
donglin 已提交
149
    if (err && err.code !== 0) {
M
mingxihua 已提交
150
        console.log('isRamConstrainedDevice fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
151
    } else {
M
mingxihua 已提交
152
        console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
D
donglin 已提交
153
    }
M
mingxihua 已提交
154
});
D
donglin 已提交
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) => {
M
mingxihua 已提交
185
    console.log('The size of app memory is: ${JSON.stringify(data)}');
D
donglin 已提交
186
}).catch((error) => {
M
mingxihua 已提交
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) => {
D
donglin 已提交
219
    if (err && err.code !== 0) {
M
mingxihua 已提交
220
        console.log('getAppMemorySize fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
221
    } else {
M
mingxihua 已提交
222
        console.log('The size of app memory is: ${JSON.stringify(data)}');
D
donglin 已提交
223
    }
M
mingxihua 已提交
224
});
D
donglin 已提交
225
```
M
m00512953 已提交
226

D
dy_study 已提交
227
## appManager.getRunningProcessInformation
D
donglin 已提交
228

D
dy_study 已提交
229
getRunningProcessInformation(): Promise\<Array\<ProcessInformation>>;
D
donglin 已提交
230 231 232 233 234 235 236 237 238 239 240

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

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

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

**返回值:**

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

D
donglin 已提交
243 244 245 246 247 248 249 250
**错误码**

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

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

D
donglin 已提交
251
**示例:**
252

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

D
dy_study 已提交
256
appManager.getRunningProcessInformation().then((data) => {
M
mingxihua 已提交
257
    console.log('The running process information is: ${JSON.stringify(data)}');
D
donglin 已提交
258
}).catch((error) => {
M
mingxihua 已提交
259
    console.log('error: ${JSON.stringify(error)}');
D
donglin 已提交
260 261
});
```
D
donglin 已提交
262

D
dy_study 已提交
263
## appManager.getRunningProcessInformation<sup>9+</sup>
D
donglin 已提交
264

D
dy_study 已提交
265
getRunningProcessInformation(callback: AsyncCallback\<Array\<ProcessInformation>>): void;
D
donglin 已提交
266 267 268 269 270 271 272

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

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

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

D
donglin 已提交
273
**返回值:**
D
donglin 已提交
274

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

D
donglin 已提交
279 280 281 282 283 284 285 286
**错误码**

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

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

D
donglin 已提交
287
**示例:**
288

D
donglin 已提交
289
```ts
290 291
import appManager from '@ohos.app.ability.appManager';

D
dy_study 已提交
292
appManager.getRunningProcessInformation((err, data) => {
D
donglin 已提交
293
    if (err && err.code !== 0) {
M
mingxihua 已提交
294
        console.log('getRunningProcessInformation fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
295
    } else {
M
mingxihua 已提交
296
        console.log('The process running information is: ${JSON.stringify(data)}');
D
donglin 已提交
297
    }
M
mingxihua 已提交
298
});
D
donglin 已提交
299
```
D
donglin 已提交
300 301 302

## appManager.on

M
mingxihua 已提交
303
on(type: 'applicationState', observer: ApplicationStateObserver): number;
D
donglin 已提交
304

305
注册全部应用程序的状态观测器。
D
donglin 已提交
306 307 308 309 310 311 312 313 314 315 316

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

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

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

**参数:**

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

**返回值:**

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

D
donglin 已提交
326 327 328 329 330 331 332 333
**错误码**

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

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

D
donglin 已提交
334
**示例:**
335

D
donglin 已提交
336
```ts
337 338
import appManager from '@ohos.app.ability.appManager';

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

## appManager.on

M
mingxihua 已提交
366
on(type: 'applicationState', observer: ApplicationStateObserver, bundleNameList: Array\<string>): number;
D
donglin 已提交
367

368
注册指定应用程序的状态观测器。
D
donglin 已提交
369 370 371 372 373 374 375 376 377 378 379

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

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

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

**参数:**

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

D
donglin 已提交
384 385 386 387 388 389
**返回值:**

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

D
donglin 已提交
390 391 392 393 394 395 396 397
**错误码**

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

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

D
donglin 已提交
398
**示例:**
399

D
donglin 已提交
400
```ts
401 402
import appManager from '@ohos.app.ability.appManager';

403
let applicationStateObserver = {
D
donglin 已提交
404
    onForegroundApplicationChanged(appStateData) {
405
        console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
D
donglin 已提交
406 407
    },
    onAbilityStateChanged(abilityStateData) {
408
        console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
D
donglin 已提交
409 410
    },
    onProcessCreated(processData) {
411
        console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
D
donglin 已提交
412 413
    },
    onProcessDied(processData) {
414
        console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
D
donglin 已提交
415 416
    },
    onProcessStateChanged(processData) {
417
        console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
D
donglin 已提交
418
    }
M
mingxihua 已提交
419
};
420
let bundleNameList = ['bundleName1', 'bundleName2'];
D
donglin 已提交
421
try {
M
mingxihua 已提交
422
    const observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
D
donglin 已提交
423
    console.log(`[appManager] observerCode: ${observerId}`);
D
donglin 已提交
424
} catch (paramError) {
425
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
D
donglin 已提交
426
}
427
```
D
donglin 已提交
428 429 430

## appManager.off

M
mingxihua 已提交
431
off(type: 'applicationState', observerId: number,  callback: AsyncCallback\<void>): void;
D
donglin 已提交
432 433 434 435 436 437 438 439 440 441

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

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

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

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

**参数:**
442

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

D
donglin 已提交
449 450 451 452 453 454 455 456
**错误码**

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

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

D
donglin 已提交
457
**示例:**
458

D
donglin 已提交
459
```ts
460
import appManager from '@ohos.app.ability.appManager';
D
donglin 已提交
461

462
let observeId = 0;
D
donglin 已提交
463

D
donglin 已提交
464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480
// 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)}`);
    }
M
mingxihua 已提交
481
};
D
donglin 已提交
482 483
let bundleNameList = ['bundleName1', 'bundleName2'];
try {
M
mingxihua 已提交
484
    observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
D
donglin 已提交
485 486 487 488 489 490
    console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}

// 2.注销应用状态监听器
D
donglin 已提交
491
function unregisterApplicationStateObserverCallback(err) {
D
donglin 已提交
492
    if (err && err.code !== 0) {
M
mingxihua 已提交
493
        console.log('unregisterApplicationStateObserverCallback fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
494
    } else {
M
mingxihua 已提交
495
        console.log('unregisterApplicationStateObserverCallback success.');
D
donglin 已提交
496
    }
D
donglin 已提交
497 498
}
try {
M
mingxihua 已提交
499
    appManager.off('applicationState', observerId, unregisterApplicationStateObserverCallback);
D
donglin 已提交
500
} catch (paramError) {
M
mingxihua 已提交
501
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
502 503
}
```
D
donglin 已提交
504 505 506

## appManager.off

M
mingxihua 已提交
507
off(type: 'applicationState', observerId: number): Promise\<void>;
D
donglin 已提交
508 509 510 511 512 513 514 515 516 517 518 519 520

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

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
mingxihua 已提交
521
| type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 |
D
donglin 已提交
522
| observerId | number | 是 | 表示观测器的编号代码。 |
D
donglin 已提交
523 524 525 526 527

**返回值:**

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

D
donglin 已提交
530 531 532 533 534 535 536 537
**错误码**

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

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

D
donglin 已提交
538
**示例:**
539

D
donglin 已提交
540
```ts
541 542 543
import appManager from '@ohos.app.ability.appManager';

let observeId = 0;
D
donglin 已提交
544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561

// 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)}`);
    }
M
mingxihua 已提交
562
};
D
donglin 已提交
563 564
let bundleNameList = ['bundleName1', 'bundleName2'];
try {
M
mingxihua 已提交
565
    observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
D
donglin 已提交
566 567 568 569
    console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
    console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
D
donglin 已提交
570
    
D
donglin 已提交
571
// 2.注销应用状态监听器
D
donglin 已提交
572
try {
M
mingxihua 已提交
573
    appManager.off('applicationState', observerId).then((data) => {
M
mingxihua 已提交
574
        console.log('unregisterApplicationStateObserver success, data: ${JSON.stringify(data)}');
D
donglin 已提交
575
    }).catch((err) => {
M
mingxihua 已提交
576
        console.log('unregisterApplicationStateObserver fail, err: ${JSON.stringify(err)}');
M
mingxihua 已提交
577
    });
D
donglin 已提交
578
} catch (paramError) {
M
mingxihua 已提交
579
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
580 581
}
```
D
donglin 已提交
582 583 584 585 586

## appManager.getForegroundApplications

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

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

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

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

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

D
donglin 已提交
595
**错误码**
D
donglin 已提交
596

D
donglin 已提交
597 598 599
| 错误码ID | 错误信息 |
| ------- | -------- |
| 16000050 | Internal error. |
D
donglin 已提交
600

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

**参数:**

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

**示例:**
610

D
donglin 已提交
611
```ts
612 613
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
614
function getForegroundApplicationsCallback(err, data) {
D
donglin 已提交
615
    if (err && err.code !== 0) {
M
mingxihua 已提交
616
        console.log('getForegroundApplicationsCallback fail, err: ${JSON.stringify(err)}');
M
m00512953 已提交
617
    } else {
M
mingxihua 已提交
618
        console.log('getForegroundApplicationsCallback success, data: ${JSON.stringify(data)}');
M
m00512953 已提交
619
    }
D
donglin 已提交
620 621
}
try {
D
donglin 已提交
622
    appManager.getForegroundApplications(getForegroundApplicationsCallback);
D
donglin 已提交
623
} catch (paramError) {
M
mingxihua 已提交
624
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
625 626
}
```
M
m00512953 已提交
627

D
donglin 已提交
628
## appManager.getForegroundApplications
D
donglin 已提交
629 630 631

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

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

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

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

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

**返回值:**

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

D
donglin 已提交
646 647 648 649 650 651 652 653
**错误码**

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

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

D
donglin 已提交
654
**示例:**
655

D
donglin 已提交
656
```ts
657 658
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
659
appManager.getForegroundApplications().then((data) => {
M
mingxihua 已提交
660
    console.log('getForegroundApplications success, data: ${JSON.stringify(data)}');
D
donglin 已提交
661
}).catch((err) => {
M
mingxihua 已提交
662
    console.log('getForegroundApplications fail, err: ${JSON.stringify(err)}');
M
mingxihua 已提交
663
});
D
donglin 已提交
664
```
D
donglin 已提交
665

D
donglin 已提交
666
## appManager.killProcessWithAccount
D
donglin 已提交
667 668 669 670 671

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

切断account进程(Promise形式)。

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

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

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

**参数:**

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

D
donglin 已提交
685 686 687 688 689 690 691 692
**错误码**

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

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

D
donglin 已提交
693 694
**示例:**

M
m00512953 已提交
695
```ts
696 697
import appManager from '@ohos.app.ability.appManager';

698 699
let bundleName = 'bundleName';
let accountId = 0;
D
donglin 已提交
700
try {
D
donglin 已提交
701
    appManager.killProcessWithAccount(bundleName, accountId).then(() => {
M
mingxihua 已提交
702
        console.log('killProcessWithAccount success');
D
donglin 已提交
703
    }).catch((err) => {
M
mingxihua 已提交
704
        console.error('killProcessWithAccount fail, err: ${JSON.stringify(err)}');
M
mingxihua 已提交
705
    });
D
donglin 已提交
706
} catch (paramError) {
M
mingxihua 已提交
707
    console.error('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
708
}
D
donglin 已提交
709 710 711
```


D
donglin 已提交
712
## appManager.killProcessWithAccount
D
donglin 已提交
713 714 715 716 717 718 719 720 721

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

切断account进程(callback形式)。

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

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

D
donglin 已提交
722
**需要权限**:ohos.permission.CLEAN_BACKGROUND_PROCESSES,ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS,当accountId为当前用户时,不需要校验ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS权限。
D
donglin 已提交
723 724 725 726 727

**参数:**

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

D
donglin 已提交
732 733 734 735 736 737 738 739
**错误码**

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

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

D
donglin 已提交
740 741
**示例:**

M
m00512953 已提交
742
```ts
743 744
import appManager from '@ohos.app.ability.appManager';

D
donglin 已提交
745 746
let bundleName = 'bundleName';
let accountId = 0;
D
donglin 已提交
747
function killProcessWithAccountCallback(err, data) {
D
donglin 已提交
748
    if (err && err.code !== 0) {
M
mingxihua 已提交
749
        console.log('killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}');
D
donglin 已提交
750
    } else {
M
mingxihua 已提交
751
        console.log('killProcessWithAccountCallback success.');
D
donglin 已提交
752
    }
D
donglin 已提交
753
}
D
donglin 已提交
754
appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback);
D
donglin 已提交
755 756
```

D
donglin 已提交
757
## appManager.killProcessesByBundleName
D
donglin 已提交
758 759 760

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

761
通过Bundle名称终止进程。
D
donglin 已提交
762 763 764 765 766 767 768 769 770 771 772

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

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

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

**参数:**

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

D
donglin 已提交
776 777 778 779 780 781 782 783
**错误码**

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

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

D
donglin 已提交
784
**示例:**
785

D
donglin 已提交
786
```ts
787 788
import appManager from '@ohos.app.ability.appManager';

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

D
donglin 已提交
804
## appManager.killProcessesByBundleName
D
donglin 已提交
805 806 807

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

808
通过Bundle名称终止进程。
D
donglin 已提交
809 810 811 812 813 814 815 816 817 818 819

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
820
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
821 822 823 824 825 826 827

**返回值:**

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

D
donglin 已提交
828 829 830 831 832 833 834 835
**错误码**

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

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

D
donglin 已提交
836
**示例:**
837

D
donglin 已提交
838
```ts
839 840
import appManager from '@ohos.app.ability.appManager';

841
let bundleName = 'bundleName';
D
donglin 已提交
842 843
try {
    appManager.killProcessesByBundleName(bundleName).then((data) => {
M
mingxihua 已提交
844
        console.log('killProcessesByBundleName success.');
D
donglin 已提交
845
    }).catch((err) => {
M
mingxihua 已提交
846
        console.log('killProcessesByBundleName fail, err: ${JSON.stringify(err)}');
M
mingxihua 已提交
847
    });
D
donglin 已提交
848
} catch (paramError) {
M
mingxihua 已提交
849
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
850 851
}
```
D
donglin 已提交
852

D
donglin 已提交
853
## appManager.clearUpApplicationData
D
donglin 已提交
854 855 856

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

857
通过Bundle名称清除应用数据。
D
donglin 已提交
858 859 860 861 862 863 864 865 866 867 868

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

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

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

**参数:**

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

D
donglin 已提交
872 873 874 875 876 877 878 879
**错误码**

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

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

D
donglin 已提交
880
**示例:**
881

D
donglin 已提交
882
```ts
883 884
import appManager from '@ohos.app.ability.appManager';

885
let bundleName = 'bundleName';
D
donglin 已提交
886
function clearUpApplicationDataCallback(err, data) {
D
donglin 已提交
887
    if (err && err.code !== 0) {
M
mingxihua 已提交
888
        console.log('clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}');
M
m00512953 已提交
889
    } else {
M
mingxihua 已提交
890
        console.log('clearUpApplicationDataCallback success.');
D
donglin 已提交
891
    }
D
donglin 已提交
892 893
}
try {
D
donglin 已提交
894
    appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
D
donglin 已提交
895
} catch (paramError) {
M
mingxihua 已提交
896
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
897 898
}
```
D
donglin 已提交
899

D
donglin 已提交
900
## appManager.clearUpApplicationData
D
donglin 已提交
901 902 903

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

904
通过Bundle名称清除应用数据。
D
donglin 已提交
905 906 907 908 909 910 911 912 913 914 915

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

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

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

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
916
| bundleName | string | 是 | 表示Bundle名称。 |
D
donglin 已提交
917 918 919 920 921

**返回值:**

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

D
donglin 已提交
924 925 926 927 928 929 930 931
**错误码**

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

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

D
donglin 已提交
932
**示例:**
933

D
donglin 已提交
934
```ts
935 936
import appManager from '@ohos.app.ability.appManager';

937
let bundleName = 'bundleName';
D
donglin 已提交
938 939
try {
    appManager.clearUpApplicationData(bundleName).then((data) => {
M
mingxihua 已提交
940
        console.log('clearUpApplicationData success.');
D
donglin 已提交
941
    }).catch((err) => {
M
mingxihua 已提交
942
        console.log('clearUpApplicationData fail, err: ${JSON.stringify(err)}');
M
mingxihua 已提交
943
    });
D
donglin 已提交
944
} catch (paramError) {
M
mingxihua 已提交
945
    console.log('error: ${paramError.code}, ${paramError.message}');
D
donglin 已提交
946 947
}
```
D
donglin 已提交
948

D
donglin 已提交
949
## ApplicationState
D
donglin 已提交
950

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

D
donglin 已提交
953 954 955 956
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

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

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

D
donglin 已提交
965
## ProcessState
D
donglin 已提交
966

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

D
donglin 已提交
969 970 971 972
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

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

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