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## ApplicationStateObserver.onForegroundApplicationChanged 16 17onForegroundApplicationChanged(appStateData: AppStateData): void 18 19Called when the foreground or background state of an application changes. 20 21**System capability**: SystemCapability.Ability.AbilityRuntime.Core 22 23**Parameters** 24 25| Name| Type| Mandatory| Description| 26| -------- | -------- | -------- | -------- | 27| appStateData | [AppStateData](js-apis-inner-application-appStateData.md) | Yes| Application state data.| 28 29## ApplicationStateObserver.onAbilityStateChanged 30 31onAbilityStateChanged(abilityStateData: AbilityStateData): void 32 33Called when the ability state changes. 34 35**System capability**: SystemCapability.Ability.AbilityRuntime.Core 36 37**Parameters** 38 39| Name| Type| Mandatory| Description| 40| -------- | -------- | -------- | -------- | 41| abilityStateData | [AbilityStateData](js-apis-inner-application-abilityStateData.md) | Yes| Ability state data.| 42 43## ApplicationStateObserver.onProcessCreated 44 45onProcessCreated(processData: ProcessData): void 46 47Called when a process is created. 48 49**System capability**: SystemCapability.Ability.AbilityRuntime.Core 50 51**Parameters** 52 53| Name| Type| Mandatory| Description| 54| -------- | -------- | -------- | -------- | 55| processData | [ProcessData](js-apis-inner-application-processData.md) | Yes| Process data.| 56 57## ApplicationStateObserver.onProcessDied 58 59onProcessDied(processData: ProcessData): void 60 61Called when a process is destroyed. 62 63**System capability**: SystemCapability.Ability.AbilityRuntime.Core 64 65**Parameters** 66 67| Name| Type| Mandatory| Description| 68| -------- | -------- | -------- | -------- | 69| processData | [ProcessData](js-apis-inner-application-processData.md) | Yes| Process data.| 70 71## ApplicationStateObserver.onProcessStateChanged 72 73onProcessStateChanged(processData: ProcessData): void 74 75Called when the process state is changed. 76 77**System capability**: SystemCapability.Ability.AbilityRuntime.Core 78 79**Parameters** 80 81| Name| Type| Mandatory| Description| 82| -------- | -------- | -------- | -------- | 83| processData | [ProcessData](js-apis-inner-application-processData.md) | Yes| Process data.| 84 85## ApplicationStateObserver.onAppStarted 86 87onAppStarted(appStateData: AppStateData): void 88 89Called when the first process of the application is created. 90 91**System capability**: SystemCapability.Ability.AbilityRuntime.Core 92 93**Parameters** 94 95| Name| Type| Mandatory| Description| 96| -------- | -------- | -------- | -------- | 97| appStateData | [AppStateData](js-apis-inner-application-appStateData.md) | Yes| Application state data.| 98 99## ApplicationStateObserver.onAppStopped 100 101onAppStopped(appStateData: AppStateData): void 102 103Called when the last process of the application is destroyed. 104 105**System capability**: SystemCapability.Ability.AbilityRuntime.Core 106 107**Parameters** 108 109| Name| Type| Mandatory| Description| 110| -------- | -------- | -------- | -------- | 111| appStateData | [AppStateData](js-apis-inner-application-appStateData.md) | Yes| Application state data.| 112 113## ProcessData 114 115type ProcessData = _ProcessData.default 116 117Defines the process data. 118 119**System capability**: SystemCapability.Ability.AbilityRuntime.Core 120 121| Type| Description| 122| --- | --- | 123| [_ProcessData.default](js-apis-inner-application-processData.md) | Process data.| 124 125**Example** 126```ts 127import { appManager } from '@kit.AbilityKit'; 128 129let applicationStateObserver: appManager.ApplicationStateObserver = { 130 onForegroundApplicationChanged(appStateData) { 131 console.log(`onForegroundApplicationChanged appStateData: ${JSON.stringify(appStateData)}`); 132 }, 133 onAbilityStateChanged(abilityStateData) { 134 console.log(`onAbilityStateChanged onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); 135 }, 136 onProcessCreated(processData) { 137 console.log(`onProcessCreated onProcessCreated: ${JSON.stringify(processData)}`); 138 }, 139 onProcessDied(processData) { 140 console.log(`onProcessDied onProcessDied: ${JSON.stringify(processData)}`); 141 }, 142 onProcessStateChanged(processData) { 143 console.log(`onProcessStateChanged onProcessStateChanged: ${JSON.stringify(processData)}`); 144 }, 145 onAppStarted(appStateData) { 146 console.log(`onAppStarted appStateData: ${JSON.stringify(appStateData)}`); 147 }, 148 onAppStopped(appStateData) { 149 console.log(`onAppStopped appStateData: ${JSON.stringify(appStateData)}`); 150 } 151}; 152let observerCode = appManager.on('applicationState', applicationStateObserver); 153``` 154