• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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