1# @ohos.app.ability.Ability (Ability基类)
2
3[UIAbility](js-apis-app-ability-uiAbility.md)和[ExtensionAbility](js-apis-app-ability-extensionAbility.md)的基类,提供系统配置更新回调和系统内存调整回调。不支持开发者直接继承该基类。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10
11## 导入模块
12
13```ts
14import { Ability } from '@kit.AbilityKit';
15```
16
17## Ability的继承关系说明
18
19各类Ability的继承关系如下图所示。
20
21> **说明:**
22>
23> 部分ExtensionAbility组件(例如[FormExtensionAbility](../apis-form-kit/js-apis-app-form-formExtensionAbility.md)、[InputMethodExtensionAbility](../apis-ime-kit/js-apis-inputmethod-extension-ability.md)等)与下图中的ExtensionAbility基类不存在继承关系,均未在图中列出。
24
25![uiExtensionAbility](../figures/image-ability-uiExtensionAbility.png)
26
27## Ability.onConfigurationUpdate
28
29onConfigurationUpdate(newConfig: Configuration): void
30
31当系统配置更新时调用。
32
33**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
34
35**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
36
37**参数:**
38
39| 参数名 | 类型 | 必填 | 说明 |
40| -------- | -------- | -------- | -------- |
41| newConfig | [Configuration](js-apis-app-ability-configuration.md) | 是 | 表示需要更新的配置信息。 |
42
43**示例:**
44  ```ts
45// Ability是顶层基类,不支持开发者直接继承。故以派生类UIAbility举例说明。
46import { UIAbility, Configuration } from '@kit.AbilityKit';
47
48class MyUIAbility extends UIAbility {
49    onConfigurationUpdate(config: Configuration) {
50        console.log(`onConfigurationUpdate, config: ${JSON.stringify(config)}`);
51    }
52}
53  ```
54
55## Ability.onMemoryLevel
56
57onMemoryLevel(level: AbilityConstant.MemoryLevel): void
58
59当内存到达不同级别时系统回调该方法。
60
61**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
62
63**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
64
65**参数:**
66
67| 参数名 | 类型 | 必填 | 说明 |
68| -------- | -------- | -------- | -------- |
69| level | [AbilityConstant.MemoryLevel](js-apis-app-ability-abilityConstant.md#memorylevel) | 是 | 当前内存使用级别。|
70
71**示例:**
72
73  ```ts
74// Ability是顶层基类,不支持开发者直接继承。故以派生类UIAbility举例说明。
75import { UIAbility, AbilityConstant } from '@kit.AbilityKit';
76
77class MyUIAbility extends UIAbility {
78  onMemoryLevel(level: AbilityConstant.MemoryLevel) {
79    console.log(`onMemoryLevel, level: ${JSON.stringify(level)}`);
80  }
81}
82  ```
83