1# @ohos.app.ability.ApplicationStateChangeCallback (ApplicationStateChangeCallback)
2
3ApplicationStateChangeCallback模块提供应用上下文ApplicationContext对当前应用前后台变化监听回调的能力。
4
5> **说明:**
6>
7> 本模块首批接口从API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10
11## 导入模块
12
13```ts
14import { ApplicationStateChangeCallback } from '@kit.AbilityKit';
15```
16
17## ApplicationStateChangeCallback.onApplicationForeground
18
19onApplicationForeground(): void
20
21注册当前应用前后台变化的监听后,在当前应用从后台切换到前台时触发回调。
22
23**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
24
25**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
26
27**示例:**
28
29参见[onApplicationBackground](#applicationstatechangecallbackonapplicationbackground)。
30
31## ApplicationStateChangeCallback.onApplicationBackground
32
33onApplicationBackground(): void
34
35注册当前应用前后台变化的监听后,在当前应用从前台切换到后台时触发回调。
36
37**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
38
39**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
40
41**示例:**
42
43```ts
44import { UIAbility, ApplicationStateChangeCallback } from '@kit.AbilityKit';
45import { BusinessError } from '@kit.BasicServicesKit';
46
47let applicationStateChangeCallback: ApplicationStateChangeCallback = {
48  onApplicationForeground() {
49    console.info('applicationStateChangeCallback onApplicationForeground');
50  },
51  onApplicationBackground() {
52    console.info('applicationStateChangeCallback onApplicationBackground');
53  }
54};
55
56export default class MyAbility extends UIAbility {
57  onCreate() {
58    console.log('MyAbility onCreate');
59    // 1.获取applicationContext
60    let applicationContext = this.context.getApplicationContext();
61    try {
62      // 2.通过applicationContext注册应用前后台状态监听
63      if (applicationContext != undefined) {
64        applicationContext.on('applicationStateChange', applicationStateChangeCallback);
65      }
66    } catch (paramError) {
67      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
68    }
69    console.log('Resgiter applicationStateChangeCallback');
70  }
71  onDestroy() {
72    let applicationContext = this.context.getApplicationContext();
73    try {
74      // 1.通过applicationContext解除注册应用前后台状态监听
75      if (applicationContext != undefined) {
76        applicationContext.off('applicationStateChange', applicationStateChangeCallback);
77      }
78    } catch (paramError) {
79      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
80    }
81  }
82}
83```
84