1# ApplicationContext 2 3ApplicationContext模块提供开发者应用级别的的上下文的能力,包括提供注册及取消注册应用内组件生命周期的监听接口。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 本模块接口仅可在Stage模型下使用。 9 10## 使用说明 11 12在使用ApplicationContext的功能前,需要通过context的实例获取。 13 14```ts 15let applicationContext = this.context.getApplicationContext(); 16``` 17 18## ApplicationContext.on(type: 'abilityLifecycle', callback: AbilityLifecycleCallback) 19 20on(type: 'abilityLifecycle', callback: AbilityLifecycleCallback): **number**; 21 22注册监听应用内生命周期 23 24**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 25 26**参数:** 27 28| 参数名 | 类型 | 必填 | 说明 | 29| ------------------------ | -------- | ---- | ------------------------------ | 30| type | 'abilityLifecycle' | 是 | 监听事件的类型。 | 31| callback | [AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md) | 是 | 回调方法,返回注册监听事件的ID。 | 32 33**返回值:** 34 35| 类型 | 说明 | 36| ------ | ------------------------------ | 37| number | 返回的此次注册监听生命周期的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1)。| 38 39**示例:** 40 41```ts 42import UIAbility from '@ohos.app.ability.UIAbility'; 43 44let lifecycleId; 45 46export default class EntryAbility extends UIAbility { 47 onCreate() { 48 console.log('MyAbility onCreate'); 49 let AbilityLifecycleCallback = { 50 onAbilityCreate(ability) { 51 console.log('AbilityLifecycleCallback onAbilityCreate ability:' + ability); 52 }, 53 onWindowStageCreate(ability, windowStage) { 54 console.log('AbilityLifecycleCallback onWindowStageCreate ability:' + ability); 55 console.log('AbilityLifecycleCallback onWindowStageCreate windowStage:' + windowStage); 56 }, 57 onWindowStageActive(ability, windowStage) { 58 console.log('AbilityLifecycleCallback onWindowStageActive ability:' + ability); 59 console.log('AbilityLifecycleCallback onWindowStageActive windowStage:' + windowStage); 60 }, 61 onWindowStageInactive(ability, windowStage) { 62 console.log('AbilityLifecycleCallback onWindowStageInactive ability:' + ability); 63 console.log('AbilityLifecycleCallback onWindowStageInactive windowStage:' + windowStage); 64 }, 65 onWindowStageDestroy(ability, windowStage) { 66 console.log('AbilityLifecycleCallback onWindowStageDestroy ability:' + ability); 67 console.log('AbilityLifecycleCallback onWindowStageDestroy windowStage:' + windowStage); 68 }, 69 onAbilityDestroy(ability) { 70 console.log('AbilityLifecycleCallback onAbilityDestroy ability:' + ability); 71 }, 72 onAbilityForeground(ability) { 73 console.log('AbilityLifecycleCallback onAbilityForeground ability:' + ability); 74 }, 75 onAbilityBackground(ability) { 76 console.log('AbilityLifecycleCallback onAbilityBackground ability:' + ability); 77 }, 78 onAbilityContinue(ability) { 79 console.log('AbilityLifecycleCallback onAbilityContinue ability:' + ability); 80 } 81 } 82 // 1.通过context属性获取applicationContext 83 let applicationContext = this.context.getApplicationContext(); 84 // 2.通过applicationContext注册监听应用内生命周期 85 lifecycleId = applicationContext.on('abilityLifecycle', AbilityLifecycleCallback); 86 console.log('registerAbilityLifecycleCallback number: ' + JSON.stringify(lifecycleId)); 87 } 88} 89``` 90 91## ApplicationContext.off(type: 'abilityLifecycle', callbackId: number, callback: AsyncCallback\<void>) 92 93off(type: 'abilityLifecycle', callbackId: **number**, callback: AsyncCallback<**void**>): **void**; 94 95取消监听应用内生命周期 96 97**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 98 99**参数:** 100 101| 参数名 | 类型 | 必填 | 说明 | 102| ------------- | -------- | ---- | -------------------------- | 103| type | 'abilityLifecycle' | 是 | 取消监听事件的类型。 | 104| callbackId | number | 是 | 注册监听应用内生命周期的ID。 | 105| callback | AsyncCallback\<void> | 是 | 回调方法。 | 106 107**示例:** 108 109```ts 110import UIAbility from '@ohos.app.ability.UIAbility'; 111 112let lifecycleId; 113 114export default class EntryAbility extends UIAbility { 115 onDestroy() { 116 let applicationContext = this.context.getApplicationContext(); 117 console.log('stage applicationContext: ' + applicationContext); 118 applicationContext.off('abilityLifecycle', lifecycleId, (error, data) => { 119 console.log('unregisterAbilityLifecycleCallback success, err: ' + JSON.stringify(error)); 120 }); 121 } 122} 123``` 124 125## ApplicationContext.off(type: 'abilityLifecycle', callbackId: number) 126 127off(type: 'abilityLifecycle', callbackId: **number**): **void**; 128 129取消监听应用内生命周期 130 131**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 132 133**参数:** 134 135| 参数名 | 类型 | 必填 | 说明 | 136| ------------- | -------- | ---- | -------------------------- | 137| type | 'abilityLifecycle' | 是 | 取消监听事件的类型。 | 138| callbackId | number | 是 | 注册监听应用内生命周期的ID。 | 139 140**示例:** 141 142```ts 143import Ability from '@ohos.app.ability.UIAbility'; 144 145let lifecycleId; 146 147export default class MyAbility extends Ability { 148 onDestroy() { 149 let applicationContext = this.context.getApplicationContext(); 150 console.log('stage applicationContext: ' + applicationContext); 151 applicationContext.off('abilityLifecycle', lifecycleId); 152 } 153} 154``` 155 156## ApplicationContext.on(type: 'environment', callback: EnvironmentCallback) 157 158on(type: 'environment', callback: EnvironmentCallback): **number**; 159 160注册对系统环境变化的监听。使用callback异步回调。 161 162**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 163 164**参数:** 165 166| 参数名 | 类型 | 必填 | 说明 | 167| ------------------------ | -------- | ---- | ------------------------------ | 168| type | 'environment' | 是 | 监听事件的类型。 | 169| callback | [EnvironmentCallback](js-apis-app-ability-environmentCallback.md) | 是 | 回调方法,返回注册监听事件的ID。 | 170 171**返回值:** 172 173| 类型 | 说明 | 174| ------ | ------------------------------ | 175| number | 返回的此次注册监听系统环境变化的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1)。| 176 177**示例:** 178 179```ts 180import UIAbility from '@ohos.app.ability.UIAbility'; 181 182let callbackId; 183 184export default class EntryAbility extends UIAbility { 185 onCreate() { 186 console.log('MyAbility onCreate') 187 globalThis.applicationContext = this.context.getApplicationContext(); 188 let environmentCallback = { 189 onConfigurationUpdated(config){ 190 console.log('onConfigurationUpdated config:' + JSON.stringify(config)); 191 }, 192 onMemoryLevel(level){ 193 console.log('onMemoryLevel level:' + level); 194 } 195 } 196 // 1.获取applicationContext 197 let applicationContext = globalThis.applicationContext; 198 // 2.通过applicationContext注册监听应用内生命周期 199 callbackId = applicationContext.on('environment', environmentCallback); 200 console.log('registerEnvironmentCallback callbackId: ${callbackId}'); 201 } 202} 203``` 204 205## ApplicationContext.off(type: 'environment', callbackId: number, callback: AsyncCallback\<void>) 206 207off(type: 'environment', callbackId: **number**, callback: AsyncCallback<**void**>): **void**; 208 209取消对系统环境变化的监听。使用callback异步回调。 210 211**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 212 213**参数:** 214 215| 参数名 | 类型 | 必填 | 说明 | 216| ------------- | -------- | ---- | -------------------------- | 217| type | 'environment' | 是 | 取消监听事件的类型。 | 218| callbackId | number | 是 | 注册监听系统环境变化的ID。 | 219| callback | AsyncCallback\<void> | 是 | 回调方法。 | 220 221**示例:** 222 223```ts 224import UIAbility from '@ohos.app.ability.UIAbility'; 225 226let callbackId; 227 228export default class EntryAbility extends UIAbility { 229 onDestroy() { 230 let applicationContext = this.context.getApplicationContext(); 231 applicationContext.off('environment', callbackId, (error, data) => { 232 console.log('unregisterEnvironmentCallback success, err: ' + JSON.stringify(error)); 233 }); 234 } 235} 236``` 237 238## ApplicationContext.off(type: 'environment', callbackId: number) 239 240off(type: 'environment', callbackId: **number**, callback: AsyncCallback<**void**>): **void**; 241 242取消对系统环境变化的监听。使用callback异步回调。 243 244**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 245 246**参数:** 247 248| 参数名 | 类型 | 必填 | 说明 | 249| ------------- | -------- | ---- | -------------------------- | 250| type | 'environment' | 是 | 取消监听事件的类型。 | 251| callbackId | number | 是 | 注册监听系统环境变化的ID。 | 252 253**示例:** 254 255```ts 256import Ability from '@ohos.app.ability.UIAbility'; 257 258let callbackId; 259 260export default class MyAbility extends Ability { 261 onDestroy() { 262 let applicationContext = this.context.getApplicationContext(); 263 applicationContext.off('environment', callbackId); 264 } 265} 266``` 267 268## ApplicationContext.getRunningProcessInformation<sup>9+</sup> 269 270getRunningProcessInformation(): Promise\<Array\<ProcessInformation>>; 271 272获取有关运行进程的信息。 273 274**需要权限**:ohos.permission.GET_RUNNING_INFO 275 276**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 277 278**系统API**: 此接口为系统接口,三方应用不支持调用。 279 280**返回值:** 281 282| 类型 | 说明 | 283| -------- | -------- | 284| Promise\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | 285 286**示例:** 287 288```ts 289let applicationContext = this.context.getApplicationContext(); 290applicationContext.getRunningProcessInformation().then((data) => { 291 console.log('The process running information is:' + JSON.stringify(data)); 292}).catch((error) => { 293 console.log('error:' + JSON.stringify(error)); 294}); 295``` 296 297## ApplicationContext.getRunningProcessInformation<sup>9+</sup> 298 299getRunningProcessInformation(callback: AsyncCallback\<Array\<ProcessInformation>>): void; 300 301获取有关运行进程的信息。 302 303**需要权限**:ohos.permission.GET_RUNNING_INFO 304 305**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 306 307**系统API**: 此接口为系统接口,三方应用不支持调用。 308 309**返回值:** 310 311| 类型 | 说明 | 312| -------- | -------- | 313|AsyncCallback\<Array\<[ProcessInformation](js-apis-inner-application-processInformation.md)>> | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | 314 315**示例:** 316 317```ts 318let applicationContext = this.context.getApplicationContext(); 319applicationContext.getRunningProcessInformation((err, data) => { 320 if (err.code !== 0) { 321 console.error('getRunningProcessInformation faile, err: ' + JSON.stringify(err)); 322 } else { 323 console.log('The process running information is:' + JSON.stringify(data)); 324 } 325}) 326``` 327 328## ApplicationContext.killProcessesBySelf<sup>9+</sup> 329 330killProcessesBySelf(): Promise\<void>; 331 332杀死应用所在的进程。 333 334**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 335 336**返回值:** 337 338| 类型 | 说明 | 339| -------- | -------- | 340| Promise\<void>> | 以Promise方式返回杀死应用所在的进程结果。 | 341 342**示例:** 343 344```ts 345let applicationContext = this.context.getApplicationContext(); 346applicationContext.killProcessesBySelf().then((data) => { 347 console.log('The process running information is:' + JSON.stringify(data)); 348}).catch((error) => { 349 console.error('error:' + JSON.stringify(error)); 350}); 351``` 352 353## ApplicationContext.killProcessesBySelf<sup>9+</sup> 354 355killProcessesBySelf(callback: AsyncCallback\<void>); 356 357杀死应用所在的进程。 358 359**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 360 361**返回值:** 362 363| 类型 | 说明 | 364| -------- | -------- | 365|AsyncCallback\<void> | 以callback方式返回杀死应用所在的进程结果。 | 366 367**示例:** 368 369```ts 370let applicationContext = this.context.getApplicationContext(); 371applicationContext.killProcessesBySelf(err => { 372 if (err.code !== 0) { 373 console.error('killProcessesBySelf faile, err: ' + JSON.stringify(err)); 374 } 375}) 376```