1# ApplicationStateObserver
2
3The ApplicationStateObserver module defines an observer to listen for application state changes. It can be used as an input parameter in [on](js-apis-app-ability-appManager.md#appmanageronapplicationstate) to listen for lifecycle changes of the current application.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 14. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8
9## Modules to Import
10
11```ts
12import { appManager } from '@kit.AbilityKit';
13```
14
15## Properties
16
17**System capability**: SystemCapability.Ability.AbilityRuntime.Core
18
19| Name                            | Type                   | Readable| Writable| Description  |
20| -------------------------------- | ---------------------- | ---- | ---- | ------------------ |
21| onForegroundApplicationChanged   | AsyncCallback\<void>   | Yes  | No  | Callback invoked when the foreground or background state of an application changes. The parameter type passed in is [AppStateData](js-apis-inner-application-appStateData.md).|
22| onAbilityStateChanged            | AsyncCallback\<void>   | Yes  | No | Callback invoked when the ability state changes. The parameter type passed in is [AbilityStateData](js-apis-inner-application-abilityStateData.md).  |
23| onProcessCreated                 | AsyncCallback\<void>   | Yes  | No  | Callback invoked when a process is created. The parameter type passed in is [ProcessData](js-apis-inner-application-processData.md).         |
24| onProcessDied                     | AsyncCallback\<void>   | Yes  | No  | Callback invoked when a process is destroyed. The parameter type passed in is [ProcessData](js-apis-inner-application-processData.md).         |
25| onProcessStateChanged | AsyncCallback\<void>   | Yes  | No  | Callback invoked when the process state is changed. The parameter type passed in is [ProcessData](js-apis-inner-application-processData.md).       |
26| onAppStarted      | AsyncCallback\<void>   | Yes  | No  | Callback invoked when the first process of the application is created. The parameter type passed in is [AppStateData](js-apis-inner-application-appStateData.md).    |
27| onAppStopped       | AsyncCallback\<void>   | Yes  | No  | Callback invoked when the last process of the application is destroyed. The parameter type passed in is [AppStateData](js-apis-inner-application-appStateData.md).    |
28
29**Example**
30```ts
31import { appManager } from '@kit.AbilityKit';
32
33let applicationStateObserver: appManager.ApplicationStateObserver = {
34  onForegroundApplicationChanged(appStateData) {
35    console.log(`onForegroundApplicationChanged appStateData: ${JSON.stringify(appStateData)}`);
36  },
37  onAbilityStateChanged(abilityStateData) {
38    console.log(`onAbilityStateChanged onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
39  },
40  onProcessCreated(processData) {
41    console.log(`onProcessCreated onProcessCreated: ${JSON.stringify(processData)}`);
42  },
43  onProcessDied(processData) {
44    console.log(`onProcessDied onProcessDied: ${JSON.stringify(processData)}`);
45  },
46  onProcessStateChanged(processData) {
47    console.log(`onProcessStateChanged onProcessStateChanged: ${JSON.stringify(processData)}`);
48  },
49  onAppStarted(appStateData) {
50    console.log(`onAppStarted appStateData: ${JSON.stringify(appStateData)}`);
51  },
52  onAppStopped(appStateData) {
53    console.log(`onAppStopped appStateData: ${JSON.stringify(appStateData)}`);
54  }
55};
56let observerCode = appManager.on('applicationState', applicationStateObserver);
57```
58