1# ApplicationStateObserver (系统接口)
2
3定义应用状态监听,可以作为[on](js-apis-app-ability-appManager-sys.md#appmanageronapplicationstate)的入参监听当前应用的生命周期变化。
4
5> **说明:**
6> 
7> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> 本模块接口为系统接口。
9
10## 导入模块
11
12```ts
13import { appManager } from '@kit.AbilityKit';
14```
15
16## 属性
17
18**系统接口**:该接口为系统接口,三方应用不支持调用。
19
20**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
21
22| 名称                             | 类型                    | 可读 | 可写 | 说明   |
23| -------------------------------- | ---------------------- | ---- | ---- | ------------------ |
24| onForegroundApplicationChanged   | AsyncCallback\<void>   | 是   | 否   | 应用前后台状态发生变化时执行的回调函数。传入参数类型是[AppStateData](js-apis-inner-application-appStateData-sys.md)。 |
25| onAbilityStateChanged            | AsyncCallback\<void>   | 是   | 否  | ability状态发生变化时执行的回调函数。传入参数类型是[AbilityStateData](js-apis-inner-application-abilityStateData-sys.md)。   |
26| onProcessCreated                 | AsyncCallback\<void>   | 是   | 否   | 进程创建时执行的回调函数。传入参数类型是[ProcessData](js-apis-inner-application-processData-sys.md)。          |
27| onProcessDied                     | AsyncCallback\<void>   | 是   | 否   | 进程销毁时执行的回调函数。传入参数类型是[ProcessData](js-apis-inner-application-processData-sys.md)。          |
28| onProcessStateChanged<sup>9+</sup> | AsyncCallback\<void>   | 是   | 否   | 进程状态更新时执行的回调函数。传入参数类型是[ProcessData](js-apis-inner-application-processData-sys.md)。        |
29| onAppStarted<sup>12+</sup>       | AsyncCallback\<void>   | 是   | 否   | 应用第一个进程创建时执行的回调函数。传入参数类型是[AppStateData](js-apis-inner-application-appStateData-sys.md)。     |
30| onAppStopped<sup>12+</sup>       | AsyncCallback\<void>   | 是   | 否   | 应用最后一个进程销毁时执行的回调函数。传入参数类型是[AppStateData](js-apis-inner-application-appStateData-sys.md)。     |
31
32**示例:**
33```ts
34import { appManager } from '@kit.AbilityKit';
35
36let applicationStateObserver: appManager.ApplicationStateObserver = {
37  onForegroundApplicationChanged(appStateData) {
38    console.log(`onForegroundApplicationChanged appStateData: ${JSON.stringify(appStateData)}`);
39  },
40  onAbilityStateChanged(abilityStateData) {
41    console.log(`onAbilityStateChanged onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
42  },
43  onProcessCreated(processData) {
44    console.log(`onProcessCreated onProcessCreated: ${JSON.stringify(processData)}`);
45  },
46  onProcessDied(processData) {
47    console.log(`onProcessDied onProcessDied: ${JSON.stringify(processData)}`);
48  },
49  onProcessStateChanged(processData) {
50    console.log(`onProcessStateChanged onProcessStateChanged: ${JSON.stringify(processData)}`);
51  },
52  onAppStarted(appStateData) {
53    console.log(`onAppStarted appStateData: ${JSON.stringify(appStateData)}`);
54  },
55  onAppStopped(appStateData) {
56    console.log(`onAppStopped appStateData: ${JSON.stringify(appStateData)}`);
57  }
58};
59let observerCode = appManager.on('applicationState', applicationStateObserver);
60```