1# @ohos.app.ability.appManager (appManager) 2 3appManager模块提供App管理的能力,包括查询当前是否处于稳定性测试场景、查询是否为ram受限设备、获取应用程序的内存大小、获取有关运行进程的信息等。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import { appManager } from '@kit.AbilityKit'; 13``` 14 15## ProcessState<sup>10+</sup> 16 17表示进程状态的枚举。 18 19**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 20 21**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 22 23| 名称 | 值 | 说明 | 24| -------------------- | --- | --------------------------------- | 25| STATE_CREATE | 0 | 进程处于创建状态。 | 26| STATE_FOREGROUND | 1 | 进程处于前台状态。 | 27| STATE_ACTIVE | 2 | 进程处于获焦状态。 | 28| STATE_BACKGROUND | 3 | 进程处于后台不可见状态。 | 29| STATE_DESTROY | 4 | 进程处于销毁状态。 | 30 31## appManager.isRunningInStabilityTest 32 33isRunningInStabilityTest(callback: AsyncCallback<boolean>): void 34 35查询当前是否处于稳定性测试场景。使用callback异步回调。 36 37**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 38 39**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 40 41**参数:** 42 43 | 参数名 | 类型 | 必填 | 说明 | 44 | -------- | -------- | -------- | -------- | 45 | callback | AsyncCallback<boolean> | 是 |以回调方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。返回true表示处于稳定性测试场景,返回false表示处于非稳定性测试场景。 | 46 47**错误码**: 48 49以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 50 51| 错误码ID | 错误信息 | 52| ------- | -------- | 53| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 54| 16000050 | Internal error. | 55 56**示例:** 57 58```ts 59import { appManager } from '@kit.AbilityKit'; 60 61appManager.isRunningInStabilityTest((err, flag) => { 62 if (err) { 63 console.error(`isRunningInStabilityTest fail, err: ${JSON.stringify(err)}`); 64 } else { 65 console.log(`The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}`); 66 } 67}); 68``` 69 70 71## appManager.isRunningInStabilityTest 72 73isRunningInStabilityTest(): Promise<boolean> 74 75查询当前是否处于稳定性测试场景。使用Promise异步回调。 76 77**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 78 79**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 80 81**返回值:** 82 83 | 类型 | 说明 | 84 | -------- | -------- | 85 | Promise<boolean> | 以Promise方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。返回true表示处于稳定性测试场景,返回false表示处于非稳定性测试场景。 | 86 87**错误码**: 88 89以下错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。 90 91| 错误码ID | 错误信息 | 92| ------- | -------- | 93| 16000050 | Internal error. | 94 95**示例:** 96 97```ts 98import { appManager } from '@kit.AbilityKit'; 99import { BusinessError } from '@kit.BasicServicesKit'; 100 101appManager.isRunningInStabilityTest().then((flag) => { 102 console.log(`The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}`); 103}).catch((error: BusinessError) => { 104 console.error(`error: ${JSON.stringify(error)}`); 105}); 106``` 107 108 109## appManager.isRamConstrainedDevice 110 111isRamConstrainedDevice(): Promise\<boolean> 112 113查询是否为ram受限设备。使用Promise异步回调。 114 115**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 116 117**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 118 119**返回值:** 120 121 | 类型 | 说明 | 122 | -------- | -------- | 123 | Promise<boolean> | 以Promise方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | 124 125**错误码**: 126 127以下错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。 128 129| 错误码ID | 错误信息 | 130| ------- | -------- | 131| 16000050 | Internal error. | 132 133**示例:** 134 135```ts 136import { appManager } from '@kit.AbilityKit'; 137import { BusinessError } from '@kit.BasicServicesKit'; 138 139appManager.isRamConstrainedDevice().then((data) => { 140 console.log(`The result of isRamConstrainedDevice is: ${JSON.stringify(data)}`); 141}).catch((error: BusinessError) => { 142 console.error(`error: ${JSON.stringify(error)}`); 143}); 144``` 145 146## appManager.isRamConstrainedDevice 147 148isRamConstrainedDevice(callback: AsyncCallback\<boolean>): void 149 150查询是否为ram受限设备。使用callback异步回调。 151 152**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 153 154**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 155 156**参数:** 157 158 | 参数名 | 类型 | 必填 | 说明 | 159 | -------- | -------- | -------- | -------- | 160 | callback | AsyncCallback<boolean> | 是 |以回调方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | 161 162**错误码**: 163 164以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 165 166| 错误码ID | 错误信息 | 167| ------- | -------- | 168| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 169| 16000050 | Internal error. | 170 171**示例:** 172 173```ts 174import { appManager } from '@kit.AbilityKit'; 175 176appManager.isRamConstrainedDevice((err, data) => { 177 if (err) { 178 console.error(`isRamConstrainedDevice fail, err: ${JSON.stringify(err)}`); 179 } else { 180 console.log(`The result of isRamConstrainedDevice is: ${JSON.stringify(data)}`); 181 } 182}); 183``` 184 185## appManager.getAppMemorySize 186 187getAppMemorySize(): Promise\<number> 188 189获取当前应用程序可以使用的内存的值。使用Promise异步回调。 190 191**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 192 193**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 194 195**返回值:** 196 197 | 类型 | 说明 | 198 | -------- | -------- | 199 | Promise<number> | 获取当前应用程序可以使用的内存的值,可根据此值进行错误处理或其他自定义处理,单位是M。使用Promise异步回调。| 200 201**错误码**: 202 203以下错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。 204 205| 错误码ID | 错误信息 | 206| ------- | -------- | 207| 16000050 | Internal error. | 208 209**示例:** 210 211```ts 212import { appManager } from '@kit.AbilityKit'; 213import { BusinessError } from '@kit.BasicServicesKit'; 214 215appManager.getAppMemorySize().then((data) => { 216 console.log(`The size of app memory is: ${JSON.stringify(data)}`); 217}).catch((error: BusinessError) => { 218 console.error(`error: ${JSON.stringify(error)}`); 219}); 220``` 221 222## appManager.getAppMemorySize 223 224getAppMemorySize(callback: AsyncCallback\<number>): void 225 226获取当前应用程序可以使用的内存的值。使用callback异步回调。 227 228**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 229 230**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 231 232**参数:** 233 234 | 参数名 | 类型 | 必填 | 说明 | 235 | -------- | -------- | -------- | -------- | 236 | callback | AsyncCallback<number> | 是 |获取当前应用程序可以使用的内存的值,可根据此值进行错误处理或其他自定义处理,单位是M。使用callback异步回调。| 237 238**错误码**: 239 240以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 241 242| 错误码ID | 错误信息 | 243| ------- | -------- | 244| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 245| 16000050 | Internal error. | 246 247**示例:** 248 249```ts 250import { appManager } from '@kit.AbilityKit'; 251 252appManager.getAppMemorySize((err, data) => { 253 if (err) { 254 console.error(`getAppMemorySize fail, err: ${JSON.stringify(err)}`); 255 } else { 256 console.log(`The size of app memory is: ${JSON.stringify(data)}`); 257 } 258}); 259``` 260 261## appManager.getRunningProcessInformation 262 263getRunningProcessInformation(): Promise\<Array\<ProcessInformation>> 264 265获取当前应用运行进程的相关信息。使用Promise异步回调。 266 267> **说明:** 268> 269> - 对于API version 11之前的版本,该接口需要申请权限ohos.permission.GET_RUNNING_INFO(该权限仅系统应用可申请)。 270> - 从API version 11开始,该接口仅用于获取调用方自身的进程信息,不再需要申请权限。 271 272**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 273 274**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 275 276**返回值:** 277 278| 类型 | 说明 | 279| -------- | -------- | 280| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | 281 282**错误码**: 283 284以下错误码详细介绍请参考[元能力子系统错误码](errorcode-ability.md)。 285 286| 错误码ID | 错误信息 | 287| ------- | -------- | 288| 16000050 | Internal error. | 289 290**示例:** 291 292```ts 293import { appManager } from '@kit.AbilityKit'; 294import { BusinessError } from '@kit.BasicServicesKit'; 295 296appManager.getRunningProcessInformation().then((data) => { 297 console.log(`The running process information is: ${JSON.stringify(data)}`); 298}).catch((error: BusinessError) => { 299 console.error(`error: ${JSON.stringify(error)}`); 300}); 301``` 302 303## appManager.getRunningProcessInformation 304 305getRunningProcessInformation(callback: AsyncCallback\<Array\<ProcessInformation>>): void 306 307获取当前应用运行进程的相关信息。使用callback异步回调。 308 309> **说明:** 310> 311> - 对于API version 11之前的版本,该接口需要申请权限ohos.permission.GET_RUNNING_INFO(该权限仅系统应用可申请)。 312> - 从API version 11开始,该接口仅用于获取调用方自身的进程信息,不再需要申请权限。 313 314**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 315 316**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 317 318**参数:** 319 320 | 参数名 | 类型 | 必填 | 说明 | 321 | -------- | -------- | -------- | -------- | 322 | callback | AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 是 |以callback方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。| 323 324**错误码**: 325 326以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 327 328| 错误码ID | 错误信息 | 329| ------- | -------- | 330| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 331| 16000050 | Internal error. | 332 333**示例:** 334 335```ts 336import { appManager } from '@kit.AbilityKit'; 337 338appManager.getRunningProcessInformation((err, data) => { 339 if (err) { 340 console.error(`getRunningProcessInformation fail, err: ${JSON.stringify(err)}`); 341 } else { 342 console.log(`The running process information is: ${JSON.stringify(data)}`); 343 } 344}); 345``` 346 347## appManager.on('applicationState')<sup>14+</sup> 348 349on(type: 'applicationState', observer: ApplicationStateObserver): number 350 351注册全部应用程序的状态观测器。 352 353**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 354 355**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 356 357**参数:** 358 359| 参数名 | 类型 | 必填 | 说明 | 360| -------- | -------- | -------- | -------- | 361| type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 | 362| observer | [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 | 363 364**返回值:** 365 366| 类型 | 说明 | 367| --- | --- | 368| number | 已注册观测器的数字代码,可用于off接口取消注册观测器。| 369 370**错误码**: 371 372以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 373 374| 错误码ID | 错误信息 | 375| ------- | -------- | 376| 201 | Permission denied. | 377| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 378| 16000050 | Internal error. | 379 380**示例:** 381 382```ts 383import { appManager } from '@kit.AbilityKit'; 384import { BusinessError } from '@kit.BasicServicesKit'; 385 386let applicationStateObserver: appManager.ApplicationStateObserver = { 387 onForegroundApplicationChanged(appStateData) { 388 console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); 389 }, 390 onAbilityStateChanged(abilityStateData) { 391 console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 392 }, 393 onProcessCreated(processData) { 394 console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); 395 }, 396 onProcessDied(processData) { 397 console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); 398 }, 399 onProcessStateChanged(processData) { 400 console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); 401 }, 402 onAppStarted(appStateData) { 403 console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`); 404 }, 405 onAppStopped(appStateData) { 406 console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`); 407 } 408}; 409 410try { 411 const observerId = appManager.on('applicationState', applicationStateObserver); 412 console.log(`[appManager] observerCode: ${observerId}`); 413} catch (paramError) { 414 let code = (paramError as BusinessError).code; 415 let message = (paramError as BusinessError).message; 416 console.error(`[appManager] error: ${code}, ${message}`); 417} 418``` 419 420## appManager.on('applicationState')<sup>14+</sup> 421 422on(type: 'applicationState', observer: ApplicationStateObserver, bundleNameList: Array\<string>): number 423 424注册指定应用程序的状态观测器。 425 426**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 427 428**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 429 430**参数:** 431 432| 参数名 | 类型 | 必填 | 说明 | 433| -------- | -------- | -------- | -------- | 434| type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 | 435| observer | [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md) | 是 | 应用状态观测器,用于观测应用的生命周期变化。 | 436| bundleNameList | `Array<string>` | 是 | 表示需要注册监听的bundleName数组。最大值128。 | 437 438**返回值:** 439 440| 类型 | 说明 | 441| --- | --- | 442| number | 已注册观测器的数字代码,可用于off接口注销观测器。| 443 444**错误码**: 445 446以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 447 448| 错误码ID | 错误信息 | 449| ------- | -------- | 450| 201 | Permission denied. | 451| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 452| 16000050 | Internal error. | 453 454**示例:** 455 456```ts 457import { appManager } from '@kit.AbilityKit'; 458import { BusinessError } from '@kit.BasicServicesKit'; 459 460let applicationStateObserver: appManager.ApplicationStateObserver = { 461 onForegroundApplicationChanged(appStateData) { 462 console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); 463 }, 464 onAbilityStateChanged(abilityStateData) { 465 console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 466 }, 467 onProcessCreated(processData) { 468 console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); 469 }, 470 onProcessDied(processData) { 471 console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); 472 }, 473 onProcessStateChanged(processData) { 474 console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); 475 }, 476 onAppStarted(appStateData) { 477 console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`); 478 }, 479 onAppStopped(appStateData) { 480 console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`); 481 } 482}; 483 484let bundleNameList = ['bundleName1', 'bundleName2']; 485 486try { 487 const observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList); 488 console.log(`[appManager] observerCode: ${observerId}`); 489} catch (paramError) { 490 let code = (paramError as BusinessError).code; 491 let message = (paramError as BusinessError).message; 492 console.error(`[appManager] error: ${code}, ${message}`); 493} 494``` 495 496## appManager.off('applicationState')<sup>14+</sup> 497 498off(type: 'applicationState', observerId: number): Promise\<void> 499 500取消注册应用程序状态观测器。使用Promise异步回调。 501 502**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 503 504**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 505 506**参数:** 507 508| 参数名 | 类型 | 必填 | 说明 | 509| -------- | -------- | -------- | -------- | 510| type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 | 511| observerId | number | 是 | 表示观测器的编号代码。 | 512 513**返回值:** 514 515| 类型 | 说明 | 516| -------- | -------- | 517| Promise\<void> | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 | 518 519**错误码**: 520 521以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 522 523| 错误码ID | 错误信息 | 524| ------- | -------- | 525| 201 | Permission denied. | 526| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 527| 16000050 | Internal error. | 528 529**示例:** 530 531```ts 532import { appManager } from '@kit.AbilityKit'; 533import { BusinessError } from '@kit.BasicServicesKit'; 534 535let observerId = 0; 536 537// 1.注册应用状态监听器 538let applicationStateObserver: appManager.ApplicationStateObserver = { 539 onForegroundApplicationChanged(appStateData) { 540 console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); 541 }, 542 onAbilityStateChanged(abilityStateData) { 543 console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 544 }, 545 onProcessCreated(processData) { 546 console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); 547 }, 548 onProcessDied(processData) { 549 console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); 550 }, 551 onProcessStateChanged(processData) { 552 console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); 553 }, 554 onAppStarted(appStateData) { 555 console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`); 556 }, 557 onAppStopped(appStateData) { 558 console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`); 559 } 560}; 561let bundleNameList = ['bundleName1', 'bundleName2']; 562 563try { 564 observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList); 565} catch (paramError) { 566 let code = (paramError as BusinessError).code; 567 let message = (paramError as BusinessError).message; 568 console.error(`[appManager] error: ${code}, ${message}`); 569} 570 571// 2.注销应用状态监听器 572try { 573 appManager.off('applicationState', observerId).then((data) => { 574 console.log(`unregisterApplicationStateObserver success, data: ${JSON.stringify(data)}`); 575 }).catch((err: BusinessError) => { 576 console.error(`unregisterApplicationStateObserver fail, err: ${JSON.stringify(err)}`); 577 }); 578} catch (paramError) { 579 let code = (paramError as BusinessError).code; 580 let message = (paramError as BusinessError).message; 581 console.error(`[appManager] error: ${code}, ${message}`); 582} 583``` 584 585## appManager.off('applicationState')<sup>15+</sup> 586 587off(type: 'applicationState', observerId: number, callback: AsyncCallback\<void>): void 588 589取消注册应用程序状态观测器。使用callback异步回调。 590 591**需要权限**:ohos.permission.RUNNING_STATE_OBSERVER 592 593**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 594 595**参数:** 596 597| 参数名 | 类型 | 必填 | 说明 | 598| -------- | -------- | -------- | -------- | 599| type | string | 是 | 调用接口类型,固定填'applicationState'字符串。 | 600| observerId | number | 是 | 表示观测器的编号代码。 | 601| callback | AsyncCallback\<void> | 是 | 回调函数。当取消注册应用程序状态观测器成功,err为undefined,否则为错误对象。 | 602 603**错误码**: 604 605以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 606 607| 错误码ID | 错误信息 | 608| ------- | -------- | 609| 201 | Permission denied. | 610| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. | 611| 16000050 | Internal error. | 612 613**示例:** 614 615```ts 616import { appManager } from '@kit.AbilityKit'; 617import { BusinessError } from '@kit.BasicServicesKit'; 618 619let observerId = 0; 620 621// 1.注册应用状态监听器 622let applicationStateObserver: appManager.ApplicationStateObserver = { 623 onForegroundApplicationChanged(appStateData) { 624 console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); 625 }, 626 onAbilityStateChanged(abilityStateData) { 627 console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 628 }, 629 onProcessCreated(processData) { 630 console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); 631 }, 632 onProcessDied(processData) { 633 console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); 634 }, 635 onProcessStateChanged(processData) { 636 console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); 637 }, 638 onAppStarted(appStateData) { 639 console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`); 640 }, 641 onAppStopped(appStateData) { 642 console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`); 643 } 644}; 645let bundleNameList = ['bundleName1', 'bundleName2']; 646 647try { 648 observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList); 649} catch (paramError) { 650 let code = (paramError as BusinessError).code; 651 let message = (paramError as BusinessError).message; 652 console.error(`[appManager] error: ${code}, ${message}`); 653} 654 655function offCallback(err: BusinessError) { 656 if (err) { 657 console.error(`appmanager.off failed, code: ${err.code}, msg: ${err.message}`); 658 } else { 659 console.info(`appmanager.off success.`); 660 } 661} 662 663// 2.注销应用状态监听器 664try { 665 appManager.off('applicationState', observerId, offCallback); 666} catch (paramError) { 667 let code = (paramError as BusinessError).code; 668 let message = (paramError as BusinessError).message; 669 console.error(`[appManager] error: ${code}, ${message}`); 670} 671``` 672 673## appManager.killProcessesByBundleName<sup>14+</sup> 674 675killProcessesByBundleName(bundleName: string, clearPageStack: boolean, appIndex?: number): Promise\<void> 676 677通过Bundle名称终止进程。使用Promise异步回调。 678 679**需要权限**:ohos.permission.KILL_APP_PROCESSES 或 ohos.permission.CLEAN_BACKGROUND_PROCESSES 680 681**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 682 683**参数:** 684 685| 参数名 | 类型 | 必填 | 说明 | 686| -------- | -------- | -------- | -------- | 687| bundleName | string | 是 | 表示Bundle名称。 | 688| clearPageStack | boolean | 是 | 表示是否清除页面堆栈。true表示清除,false表示不清除。 | 689| appIndex | number | 否 | 应用分身Id。 | 690 691**返回值:** 692 693| 类型 | 说明 | 694| -------- | -------- | 695| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 696 697**错误码**: 698 699以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 700 701| 错误码ID | 错误信息 | 702| ------- | -------- | 703| 201 | Permission denied. | 704| 401 | If the input parameter is not valid parameter. | 705| 16000050 | Internal error. | 706 707**示例:** 708 709```ts 710import { appManager } from '@kit.AbilityKit'; 711import { BusinessError } from '@kit.BasicServicesKit'; 712 713let bundleName = 'bundleName'; 714let isClearPageStack = false; 715let appIndex = 1; 716 717try { 718 appManager.killProcessesByBundleName(bundleName, isClearPageStack, appIndex).then((data) => { 719 console.log('killProcessesByBundleName success.'); 720 }).catch((err: BusinessError) => { 721 console.error(`killProcessesByBundleName fail, err: ${JSON.stringify(err)}`); 722 }); 723} catch (paramError) { 724 let code = (paramError as BusinessError).code; 725 let message = (paramError as BusinessError).message; 726 console.error(`[appManager] error: ${code}, ${message}`); 727} 728``` 729 730## appManager.isAppRunning<sup>14+</sup> 731 732isAppRunning(bundleName: string, appCloneIndex?: number): Promise\<boolean> 733 734判断应用是否在运行。使用Promise异步回调。 735 736**需要权限**:ohos.permission.GET_RUNNING_INFO 737 738**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 739 740**参数:** 741 742| 参数名 | 类型 | 必填 | 说明 | 743| -------- | -------- | -------- | -------- | 744| bundleName | string | 是 | 查询的应用包名。 | 745| appCloneIndex | number | 否 | 分身应用索引。 | 746 747**返回值:** 748 749| 类型 | 说明 | 750| -------------- | ---------------- | 751| Promise\<boolean> | Promise对象。返回true表示应用正在运行,返回false表示应用未运行。 | 752 753**错误码**: 754 755 以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 756 757| 错误码ID | 错误信息 | 758| ------- | -------- | 759| 201 | Permission denied. | 760| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. | 761| 16000050 | Internal error. | 762| 16000073 | The app clone index is invalid. | 763 764**示例:** 765 766```ts 767import { appManager } from '@kit.AbilityKit'; 768import { hilog } from '@kit.PerformanceAnalysisKit'; 769import { BusinessError } from '@kit.BasicServicesKit'; 770 771try { 772 let bundleName = "ohos.samples.etsclock"; 773 appManager.isAppRunning(bundleName).then((data: boolean) => { 774 hilog.info(0x0000, 'testTag', `data: ${JSON.stringify(data)}`); 775 }).catch((err: BusinessError) => { 776 hilog.error(0x0000, 'testTag', `isAppRunning error, code: ${err.code}, msg:${err.message}`); 777 }) 778} catch (err) { 779 hilog.error(0x0000, 'testTag', `isAppRunning error, code: ${err.code}, msg:${err.message}`); 780} 781``` 782 783## ApplicationStateObserver<sup>14+</sup> 784 785type ApplicationStateObserver = _ApplicationStateObserver.default 786 787ApplicationStateObserver模块。 788 789**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 790 791| 类型 | 说明 | 792| --- | --- | 793| [_ApplicationStateObserver.default](js-apis-inner-application-applicationStateObserver.md) | ApplicationStateObserver模块。 | 794 795## ProcessInformation 796 797type ProcessInformation = _ProcessInformation 798 799ProcessInformation模块。 800 801**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 802 803**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 804 805| 类型 | 说明 | 806| --- | --- | 807| [_ProcessInformation](js-apis-inner-application-processInformation.md) | ProcessInformation模块。 | 808