1# @ohos.app.ability.EnvironmentCallback (EnvironmentCallback) 2 3EnvironmentCallback模块提供应用上下文ApplicationContext对系统环境变化监听回调的能力。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> 本模块接口仅可在Stage模型下使用。 10 11 12## 导入模块 13 14```ts 15import { EnvironmentCallback } from '@kit.AbilityKit'; 16``` 17 18 19## EnvironmentCallback.onConfigurationUpdated 20 21onConfigurationUpdated(config: Configuration): void 22 23注册系统环境变化的监听后,在系统环境变化时触发回调。 24 25**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 26 27**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 28 29**参数:** 30 31 | 参数名 | 类型 | 必填 | 说明 | 32 | -------- | -------- | -------- | -------- | 33 | config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 变化后的Configuration对象。 | 34 35**示例:** 36 37参见[EnvironmentCallback使用](#environmentcallback使用)。 38 39## EnvironmentCallback.onMemoryLevel 40 41onMemoryLevel(level: AbilityConstant.MemoryLevel): void 42 43注册系统环境变化的监听后,在系统内存变化时触发回调。 44 45**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。 46 47**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore 48 49**参数:** 50 51 | 参数名 | 类型 | 必填 | 说明 | 52 | -------- | -------- | -------- | -------- | 53 | level | [AbilityConstant.MemoryLevel](js-apis-app-ability-abilityConstant.md#memorylevel) | 是 | 回调返回内存微调级别,显示当前内存使用状态。| 54 55**示例:** 56 57参见[EnvironmentCallback使用](#environmentcallback使用)。 58 59## EnvironmentCallback使用 60 61**示例:** 62 63```ts 64import { UIAbility, EnvironmentCallback } from '@kit.AbilityKit'; 65import { BusinessError } from '@kit.BasicServicesKit'; 66 67let callbackId: number; 68 69export default class MyAbility extends UIAbility { 70 onCreate() { 71 console.log('MyAbility onCreate'); 72 let environmentCallback: EnvironmentCallback = { 73 onConfigurationUpdated(config){ 74 console.log(`onConfigurationUpdated config: ${JSON.stringify(config)}`); 75 }, 76 77 onMemoryLevel(level){ 78 console.log(`onMemoryLevel level: ${JSON.stringify(level)}`); 79 } 80 }; 81 // 1.获取applicationContext 82 let applicationContext = this.context.getApplicationContext(); 83 try { 84 // 2.通过applicationContext注册监听应用内生命周期 85 callbackId = applicationContext.on('environment', environmentCallback); 86 } catch (paramError) { 87 console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 88 } 89 console.log(`registerEnvironmentCallback number: ${JSON.stringify(callbackId)}`); 90 } 91 92 onDestroy() { 93 let applicationContext = this.context.getApplicationContext(); 94 try { 95 applicationContext.off('environment', callbackId, (error, data) => { 96 if (error && error.code !== 0) { 97 console.error(`unregisterEnvironmentCallback fail, error: ${JSON.stringify(error)}`); 98 } else { 99 console.log(`unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}`); 100 } 101 }); 102 } catch (paramError) { 103 console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`); 104 } 105 } 106} 107```