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