js-apis-application-applicationContext.md 7.3 KB
Newer Older
1 2
# ApplicationContext

Y
yuyaozhi 已提交
3 4
ApplicationContext模块提供开发者应用级别的的上下文的能力,包括提供注册及取消注册应用内组件生命周期的监听接口。

Y
yuyaozhi 已提交
5 6
> **说明:**
> 
7 8
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
> 本模块接口仅可在Stage模型下使用。
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

## 使用说明

在使用ApplicationContext的功能前,需要通过context的实例获取。

```js
let applicationContext = this.context.getApplicationContext();
```


## ApplicationContext.registerAbilityLifecycleCallback

registerAbilityLifecycleCallback(callback: AbilityLifecycleCallback): **number**;

注册监听应用内生命周期

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

**参数:**

| 参数名                   | 类型     | 必填 | 说明                           |
| ------------------------ | -------- | ---- | ------------------------------ |
31
| callback | [AbilityLifecycleCallback](js-apis-application-abilityLifecycleCallback.md) | 是   | 回调方法,返回注册监听事件的ID。 |
32 33 34 35 36

**返回值:**

| 类型   | 说明                           |
| ------ | ------------------------------ |
D
dy_study 已提交
37
| number | 返回的此次注册监听生命周期的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1)。|
38

Y
yuyaozhi 已提交
39 40 41 42 43
**示例:**

  ```js
import AbilityStage from "@ohos.application.AbilityStage";

D
dy_study 已提交
44
var lifecycleId;
Y
yuyaozhi 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

export default class MyAbilityStage extends AbilityStage {
    onCreate() {
        console.log("MyAbilityStage onCreate")
        let AbilityLifecycleCallback  =  {
            onAbilityCreate(ability){
                console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability));        
            },
            onAbilityWindowStageCreate(ability){
                console.log("AbilityLifecycleCallback onAbilityWindowStageCreate ability:" + JSON.stringify(ability));           
            },
            onAbilityWindowStageDestroy(ability){
                console.log("AbilityLifecycleCallback onAbilityWindowStageDestroy ability:" + JSON.stringify(ability));
            },
            onAbilityDestroy(ability){
                console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability));             
            },
            onAbilityForeground(ability){
                console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability));             
            },
            onAbilityBackground(ability){
                console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability));              
            },
            onAbilityContinue(ability){
                console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability));
            }
        }
        // 1.通过context属性获取applicationContext
        let applicationContext = this.context.getApplicationContext();
        // 2.通过applicationContext注册监听应用内生命周期
D
dy_study 已提交
75 76
        lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
        console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId));
Y
yuyaozhi 已提交
77 78 79
    }
    onDestroy() {
        let applicationContext = this.context.getApplicationContext();
D
dy_study 已提交
80
        applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
81
            console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
Y
yuyaozhi 已提交
82 83 84 85
        });
    }
}
  ```
86

D
dy_study 已提交
87

88 89 90 91 92 93 94 95 96 97 98 99
## ApplicationContext.unregisterAbilityLifecycleCallback

unregisterAbilityLifecycleCallback(callbackId: **number**,  callback: AsyncCallback<**void**>): **void**;

取消监听应用内生命周期

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

**参数:**

| 参数名        | 类型     | 必填 | 说明                       |
| ------------- | -------- | ---- | -------------------------- |
D
dy_study 已提交
100
| callbackId    | number   | 是   | 注册监听应用内生命周期的ID。 |
101
| callback | AsyncCallback\<void> | 是   | 回调方法。                   |
102 103 104 105

**示例:**

  ```js
Y
yuyaozhi 已提交
106
  let applicationContext = this.context.getApplicationContext();
D
dy_study 已提交
107
  let lifecycleId = 1;
Y
yuyaozhi 已提交
108
  console.log("stage applicationContext: " + JSON.stringify(applicationContext));
D
dy_study 已提交
109
  applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
Y
yuyaozhi 已提交
110 111
      console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
  });
112
  ```
D
dy_study 已提交
113 114 115 116 117

## ApplicationContext.registerEnvironmentCallback

registerEnvironmentCallback(callback: EnvironmentCallback): **number**;

D
dy_study 已提交
118
注册对系统环境变化的监听。使用callback异步回调。
D
dy_study 已提交
119 120 121 122 123 124 125

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

**参数:**

| 参数名                   | 类型     | 必填 | 说明                           |
| ------------------------ | -------- | ---- | ------------------------------ |
126
| callback | [EnvironmentCallback](js-apis-application-EnvironmentCallback.md) | 是   | 回调方法,返回注册监听事件的ID。 |
D
dy_study 已提交
127 128 129 130 131

**返回值:**

| 类型   | 说明                           |
| ------ | ------------------------------ |
D
dy_study 已提交
132
| number | 返回的此次注册监听系统环境变化的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1)。|
D
dy_study 已提交
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

**示例:**

  ```js
import AbilityStage from "@ohos.application.AbilityStage";

var callbackId;

export default class MyAbilityStage extends AbilityStage {
    onCreate() {
        console.log("MyAbilityStage onCreate")
        globalThis.applicationContext = this.context.getApplicationContext();
        let EnvironmentCallback = {
            onConfigurationUpdated(config){
                console.log("onConfigurationUpdated config:" + JSON.stringify(config));
            },
        }
        // 1.获取applicationContext
        let applicationContext = globalThis.applicationContext;
        // 2.通过applicationContext注册监听应用内生命周期
        callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback);
        console.log("registerEnvironmentCallback number: " + JSON.stringify(callbackId));
    }
    onDestroy() {
        let applicationContext = globalThis.applicationContext;
        applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
            console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
        });
    }
}
  ```

## ApplicationContext.unregisterEnvironmentCallback

unregisterEnvironmentCallback(callbackId: **number**,  callback: AsyncCallback<**void**>): **void**;

D
dy_study 已提交
169
取消对系统环境变化的监听。使用callback异步回调。
D
dy_study 已提交
170 171 172 173 174

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

**参数:**

D
dy_study 已提交
175
| 参数名         | 类型     | 必填 | 说明                       |
D
dy_study 已提交
176
| ------------- | -------- | ---- | -------------------------- |
D
dy_study 已提交
177
| callbackId    | number   | 是   | 注册监听系统环境变化的ID。   |
178
| callback | AsyncCallback\<void> | 是   | 回调方法。                  |
D
dy_study 已提交
179 180 181 182 183 184 185 186 187 188

**示例:**

  ```js
  let applicationContext = this.context.getApplicationContext();
  let callbackId = 1;
  applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
      console.log("unregisterEnvironmentCallback success, err: " + JSON.stringify(error));
  });
  ```