1# AbilityMonitor
2
3AbilityMonitor模块提供匹配满足指定条件的受监视能力对象的方法的能力,最近匹配的ability对象将保存在[AbilityMonitor](js-apis-inner-application-abilityMonitor.md#abilitymonitor-1)对象中。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { abilityDelegatorRegistry } from '@kit.TestKit';
13```
14
15## 使用说明
16
17可以作为abilityDelegator中的[addAbilityMonitor](../apis-test-kit/js-apis-inner-application-abilityDelegator.md#addabilitymonitor9)的入参来监听指定Ability的生命周期变化。
18
19## 属性
20
21**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
22
23**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
24
25| 名称                                                         | 类型     | 只读 | 可选 | 说明                                                         |
26| ------------------------------------------------------------ | -------- | ---- | ---- | ------------------------------------------------------------ |
27| abilityName                                                  | string   | 否   | 否   | 当前AbilityMonitor绑定的ability名称。 |
28| moduleName                                                  | string   | 否   | 是   | 当前AbilityMonitor绑定的模块名称。 |
29| onAbilityCreate | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | ability被启动初始化时的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
30| onAbilityForeground | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | ability状态变成前台时的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
31| onAbilityBackground | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | ability状态变成后台时的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
32| onAbilityDestroy | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | ability被销毁前的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
33| onWindowStageCreate | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | window stage被创建时的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
34| onWindowStageRestore | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | window stage被重载时的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
35| onWindowStageDestroy | (ability: [UIAbility](js-apis-app-ability-uiAbility.md)) => void | 否   | 是   | window stage被销毁前的回调函数。<br/>不设置该属性则不能收到该生命周期回调。 |
36
37**示例:**
38
39```ts
40import { abilityDelegatorRegistry } from '@kit.TestKit';
41import { UIAbility } from '@kit.AbilityKit';
42import { BusinessError } from '@kit.BasicServicesKit';
43
44function onAbilityCreateCallback(data: UIAbility) {
45  console.info(`onAbilityCreateCallback, data: ${JSON.stringify(data)}`);
46}
47
48let monitor: abilityDelegatorRegistry.AbilityMonitor = {
49  abilityName: 'abilityname',
50  moduleName: "moduleName",
51  onAbilityCreate: onAbilityCreateCallback
52}
53
54let abilityDelegator: abilityDelegatorRegistry.AbilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
55abilityDelegator.addAbilityMonitor(monitor, (error: BusinessError) => {
56  if (error) {
57    console.error(`addAbilityMonitor fail, error: ${JSON.stringify(error)}`);
58  }
59});
60```
61