@ohos.app.ability.Ability (Ability基类)
Ability类是应用生命周期调度的基本单元,是UIAbility和ExtensionAbility的基类,提供系统配置更新回调和系统内存级别变化回调能力。该基类不支持开发者直接继承,开发者应根据具体的业务场景选择使用UIAbility或ExtensionAbility,相关指南参见Ability Kit简介。
说明:
本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
导入模块
import { Ability } from '@kit.AbilityKit';
Ability的继承关系说明
Ability基类及其子类的继承关系如下图所示。
说明:
部分ExtensionAbility组件(例如FormExtensionAbility、InputMethodExtensionAbility等)与下图中的ExtensionAbility基类不存在继承关系,均未在图中列出。

Ability.onConfigurationUpdate
onConfigurationUpdate(newConfig: Configuration): void
当系统环境变量发生变化时,系统会触发该回调。开发者可以重写该回调实现对系统环境变量变化时的响应,例如当系统语言类型发生变化时,应用可以在回调中进行定制化的处理等。
说明:
该回调方法在实际触发时存在一定限制。例如如果开发者通过setLanguage接口设置应用的语言,即便系统语言发生变化,系统也不再触发onConfigurationUpdate回调。详见使用场景。
原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| newConfig | Configuration | 是 | 表示更新后的配置信息。 |
示例:
// Ability是顶层基类,不支持开发者直接继承。故以派生类UIAbility举例说明。
import { UIAbility, Configuration } from '@kit.AbilityKit';
class MyUIAbility extends UIAbility {
onConfigurationUpdate(config: Configuration) {
console.info(`onConfigurationUpdate, config: ${JSON.stringify(config)}`);
}
}
Ability.onMemoryLevel
onMemoryLevel(level: AbilityConstant.MemoryLevel): void
当整机可用内存变化到指定程度时,系统会触发该回调。开发者可以重写该回调实现对内存级别变化的响应,例如释放缓存数据等。
说明:
onMemoryLevel回调运行在当前进程的主线程中,如果在该回调中做耗时的UI组件释放,会阻塞主线程任务,因此不建议在该回调中释放UI组件。
原子化服务API:从API version 11开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| level | AbilityConstant.MemoryLevel | 是 | 整机可用内存级别,对应的触发场景详见AbilityConstant.MemoryLevel。 |
示例:
// Ability是顶层基类,不支持开发者直接继承。故以派生类UIAbility举例说明。
import { UIAbility, AbilityConstant } from '@kit.AbilityKit';
class MyUIAbility extends UIAbility {
onMemoryLevel(level: AbilityConstant.MemoryLevel) {
console.info(`onMemoryLevel, level: ${JSON.stringify(level)}`);
}
}