1# AppStateData
2
3定义应用状态信息,可以通过[appManager.on('applicationState')](./js-apis-app-ability-appManager.md#appmanageronapplicationstate)获取当前应用的相关信息。
4
5> **说明:**
6>
7> 本模块首批接口从API version 14 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import { appManager } from '@kit.AbilityKit';
13```
14
15## 属性
16
17**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
18
19| 名称                      | 类型   | 必填  | 说明       |
20| ------------------------- | ------ | ---- | --------- |
21| bundleName  | string | 是   | Bundle名称。 |
22| uid          | number | 是   | 应用程序的uid。   |
23| state        | number | 是   | 应用状态。<br>0:初始化状态,应用正在初始化<br>1:就绪状态,应用已初始化完毕<br>2:前台状态,应用位于前台<br>3:获焦状态。(预留状态,当前暂不支持)<br>4:后台状态,应用位于后台<br>5:退出状态,应用已退出 |
24| isSplitScreenMode | boolean | 是 | 判断应用是否进入分屏模式。<br>true:应用处于分屏模式。<br>false:应用不处于分屏模式。 |
25| isFloatingWindowMode | boolean | 是 | 判断应用是否进入悬浮窗模式。<br>true:应用处于浮窗模式。<br>false:应用不处于浮窗模式。 |
26
27**示例:**
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