1# AbilityMonitor 2 3<!--Kit: Ability Kit--> 4<!--Subsystem: Ability--> 5<!--Owner: @zexin_c--> 6<!--Designer: @li-weifeng2--> 7<!--Tester: @lixueqing513--> 8<!--Adviser: @huipeizi--> 9 10本模块提供监听指定[UIAbility](js-apis-app-ability-uiAbility.md)生命周期状态变化的能力。开发者可以将AbilityMonitor作为[abilityDelegator.addAbilityMonitor](../apis-test-kit/js-apis-inner-application-abilityDelegator.md#addabilitymonitor9)的入参来注册监听。 11 12> **说明:** 13> 14> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15 16## 导入模块 17 18```ts 19import { abilityDelegatorRegistry } from '@kit.TestKit'; 20``` 21 22## 使用说明 23 24可以作为abilityDelegator中的[addAbilityMonitor](../apis-test-kit/js-apis-inner-application-abilityDelegator.md#addabilitymonitor9)的入参来监听指定Ability的生命周期变化。 25 26## AbilityMonitor 27 28**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 29 30**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 31 32| 名称 | 类型 | 只读 | 可选 | 说明 | 33| ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ | 34| abilityName | string | 否 | 否 | 被监听的UIAbility对象名称。 | 35| moduleName | string | 否 | 是 | 被监听的UIAbility对象所属模块名称。 | 36| onAbilityCreate | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | UIAbility对象被创建时,触发该回调函数。 | 37| onAbilityForeground | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | UIAbility对象状态变成前台时,触发该回调函数。 | 38| onAbilityBackground | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | UIAbility对象状态变成后台时,触发该回调函数。 | 39| onAbilityDestroy | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | UIAbility对象被销毁前,触发该回调函数。 | 40| onWindowStageCreate | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | 当WindowStage实例被创建时,触发该回调函数。 | 41| onWindowStageRestore | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | 当UIAbility跨端迁移时,目标端UIAbility恢复页面栈时,触发该回调函数。 | 42| onWindowStageDestroy | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否 | 是 | 当WindowStage被销毁前,触发该回调函数。 | 43 44**示例:** 45 46```ts 47import { abilityDelegatorRegistry } from '@kit.TestKit'; 48import { UIAbility } from '@kit.AbilityKit'; 49import { BusinessError } from '@kit.BasicServicesKit'; 50 51function onAbilityCreateCallback(data: UIAbility) { 52 console.info(`onAbilityCreateCallback, data: ${JSON.stringify(data)}`); 53} 54 55let monitor: abilityDelegatorRegistry.AbilityMonitor = { 56 abilityName: 'abilityname', 57 moduleName: "moduleName", 58 onAbilityCreate: onAbilityCreateCallback 59} 60 61let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator(); 62abilityDelegator.addAbilityMonitor(monitor, (error: BusinessError) => { 63 if (error) { 64 console.error(`addAbilityMonitor fail, error: ${JSON.stringify(error)}`); 65 } 66}); 67``` 68