• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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```