1# AppStateData
2
3The AppStateData module defines the application state data, which can be obtained through [appManager.on('applicationState')](./js-apis-app-ability-appManager.md#appmanageronapplicationstate).
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  | Mandatory | Description      |
20| ------------------------- | ------ | ---- | --------- |
21| bundleName  | string | No  | Bundle name.|
22| uid          | number | No  | UID of the application.  |
23| state        | number | No  | Application state.<br>**0**: The application is being initialized.<br>**1**: The application has been initialized and is ready.<br>**2**: The application is running in the foreground.<br>**3**: The application is having the focus. (This state is reserved.)<br>**4**: The application is running in the background.<br>**5**: The application has exited.|
24| isSplitScreenMode | boolean | No| Whether the application is in split-screen mode.<br>**true**: The application is in split-screen mode.<br>**false**: The application is not in split-screen mode.|
25| isFloatingWindowMode | boolean | No| Whether the application is in floating window mode.<br>**true**: The application is in floating window mode.<br>**false**: The application is not in floating window mode.|
26
27**Example**
28
29```ts
30import { appManager } from '@kit.AbilityKit';
31import { BusinessError } from '@kit.BasicServicesKit';
32
33let applicationStateObserver: appManager.ApplicationStateObserver = {
34  onForegroundApplicationChanged(appStateData) {
35    console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`);
36    console.log(`appStateData.bundleName: ${appStateData.bundleName}`);
37    console.log(`appStateData.uid: ${appStateData.uid}`);
38    console.log(`appStateData.state: ${appStateData.state}`);
39    console.log(`appStateData.isSplitScreenMode: ${appStateData.isSplitScreenMode}`);
40    console.log(`appStateData.isFloatingWindowMode: ${appStateData.isFloatingWindowMode}`);
41  },
42  onAbilityStateChanged(abilityStateData) {
43    console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`);
44  },
45  onProcessCreated(processData) {
46    console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`);
47  },
48  onProcessDied(processData) {
49    console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`);
50  },
51  onProcessStateChanged(processData) {
52    console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`);
53  },
54  onAppStarted(appStateData) {
55    console.log(`[appManager] onAppStarted: ${JSON.stringify(appStateData)}`);
56  },
57  onAppStopped(appStateData) {
58    console.log(`[appManager] onAppStopped: ${JSON.stringify(appStateData)}`);
59  }
60};
61
62try {
63  const observerId = appManager.on('applicationState', applicationStateObserver);
64  console.log(`[appManager] observerCode: ${observerId}`);
65} catch (paramError) {
66  let code = (paramError as BusinessError).code;
67  let message = (paramError as BusinessError).message;
68  console.error(`[appManager] error: ${code}, ${message}`);
69}
70```
71