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```