js-apis-application-environmentCallback.md 3.0 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.application.EnvironmentCallback (EnvironmentCallback)
D
dy_study 已提交
2

D
dy_study 已提交
3
EnvironmentCallback模块提供应用上下文ApplicationContext对系统环境变化监听回调的能力,包括onConfigurationUpdated、onMemoryLevel方法。
D
dy_study 已提交
4 5 6

> **说明:**
> 
D
donglin 已提交
7
> 本模块首批接口从API version 9 开始支持,从API version 9后续版本废弃,替换模块为[@ohos.app.ability.EnvironmentCallback](js-apis-app-ability-environmentCallback.md)。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
D
dy_study 已提交
8 9 10 11 12
> 本模块接口仅可在Stage模型下使用。


## 导入模块

M
m00512953 已提交
13
```ts
M
mingxihua 已提交
14
import EnvironmentCallback from '@ohos.application.EnvironmentCallback';
D
dy_study 已提交
15 16 17 18 19 20 21
```


## EnvironmentCallback.onConfigurationUpdated

onConfigurationUpdated(config: Configuration): void;

D
dy_study 已提交
22
注册系统环境变化的监听后,在系统环境变化时触发回调。
D
dy_study 已提交
23 24 25 26 27 28 29

**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore

**参数:**

  | 参数名 | 类型 | 必填 | 说明 | 
  | -------- | -------- | -------- | -------- |
M
m00512953 已提交
30
  | config | [Configuration](js-apis-application-configuration.md) | 是 | 变化后的Configuration对象。 |
D
dy_study 已提交
31

D
dy_study 已提交
32 33 34 35 36 37 38 39 40 41 42 43
## EnvironmentCallback.onMemoryLevel

onMemoryLevel(level: number): void;

注册系统内存基线水平变化监听后,在系统内存基线水平变化时触发回调。

**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
M
mingxihua 已提交
44
  | level  | [MemoryLevel](js-apis-app-ability-abilityConstant.md#abilityconstantmemorylevel) | 是 | 表示当前内存的基线水平。 |
D
dy_study 已提交
45

D
dy_study 已提交
46 47
**示例:**

M
m00512953 已提交
48
  ```ts
49
import UIAbility from '@ohos.app.ability.UIAbility';
D
dy_study 已提交
50

M
mingxihua 已提交
51
let callbackId;
D
dy_study 已提交
52

53
export default class EntryAbility extends UIAbility {
D
dy_study 已提交
54
    onCreate() {
M
mingxihua 已提交
55
        console.log('MyAbility onCreate');
D
dy_study 已提交
56
        globalThis.applicationContext = this.context.getApplicationContext();
M
mingxihua 已提交
57
        let environmentCallback  =  {
D
dy_study 已提交
58
            onConfigurationUpdated(config){
M
mingxihua 已提交
59
                console.log('onConfigurationUpdated config: ${JSON.stringify(config)}');
D
dy_study 已提交
60
            },
D
dy_study 已提交
61
            onMemoryLevel(level){
M
mingxihua 已提交
62
                console.log('onMemoryLevel level: ${level}');
D
dy_study 已提交
63
            }
M
mingxihua 已提交
64
        };
D
dy_study 已提交
65 66 67
        // 1.获取applicationContext
        let applicationContext = globalThis.applicationContext;
        // 2.通过applicationContext注册监听应用内生命周期
M
mingxihua 已提交
68
        callbackId = applicationContext.registerEnvironmentCallback(environmentCallback);
M
mingxihua 已提交
69
        console.log('registerEnvironmentCallback number: ${JSON.stringify(callbackId)}');
D
dy_study 已提交
70 71 72 73
    }
    onDestroy() {
        let applicationContext = globalThis.applicationContext;
        applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
M
mingxihua 已提交
74 75 76 77 78
            if (error && error.code !== 0) {
                console.error('unregisterEnvironmentCallback fail, error: ${JSON.stringify(error)}');
            } else {
                console.log('unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}');
            }
D
dy_study 已提交
79 80 81 82
        });
    }
}
  ```