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