• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.AbilityConstant (AbilityConstant)
2
3AbilityConstant提供Ability相关的枚举,包括设置初次启动原因、上次退出原因、迁移结果、窗口类型等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> 本模块接口仅可在Stage模型下使用。
9
10## 导入模块
11
12```ts
13import AbilityConstant from '@ohos.app.ability.AbilityConstant';
14```
15
16## 属性
17
18## AbilityConstant.LaunchParam
19
20启动参数。
21
22**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
23
24| 名称 | 类型 | 可读 | 可写 | 说明 |
25| -------- | -------- | -------- | -------- | -------- |
26| launchReason | [LaunchReason](#abilityconstantlaunchreason)| 是 | 是 | 枚举类型,表示启动原因。 |
27| lastExitReason | [LastExitReason](#abilityconstantlastexitreason) | 是 | 是 | 枚举类型,表示最后退出原因。 |
28
29## AbilityConstant.LaunchReason
30
31Ability初次启动原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)的[onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate)方法根据launchParam.launchReason的不同类型执行相应操作。
32
33**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
34
35| 名称                          | 值   | 说明                                                         |
36| ----------------------------- | ---- | ------------------------------------------------------------ |
37| UNKNOWN          | 0    | 未知原因。 |
38| START_ABILITY          | 1    | 通过[startAbility](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability)接口启动ability。 |
39| CALL | 2    | 通过[startAbilityByCall](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartabilitybycall)接口启动ability。 |
40| CONTINUATION           | 3    | 跨端设备迁移启动ability。 |
41| APP_RECOVERY           | 4    | 设置应用恢复后,应用故障时自动恢复启动ability。 |
42
43**示例:**
44
45```ts
46import UIAbility from '@ohos.app.ability.UIAbility';
47
48class MyAbility extends UIAbility {
49    onCreate(want, launchParam) {
50        if (launchParam.launchReason === AbilityConstant.LaunchReason.START_ABILITY) {
51            console.log('The ability has been started by the way of startAbility.');
52        }
53    }
54}
55```
56
57## AbilityConstant.LastExitReason
58
59Ability上次退出原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)的[onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate)方法根据launchParam.lastExitReason的不同类型执行相应操作。
60
61**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
62
63| 名称                          | 值   | 说明                                                         |
64| ----------------------------- | ---- | ------------------------------------------------------------ |
65| UNKNOWN          | 0    | 未知原因。 |
66| ABILITY_NOT_RESPONDING          | 1    | ability未响应。 |
67| NORMAL | 2    | 正常退出。 |
68
69**示例:**
70
71```ts
72import UIAbility from '@ohos.app.ability.UIAbility';
73
74class MyAbility extends UIAbility {
75    onCreate(want, launchParam) {
76        if (launchParam.lastExitReason === AbilityConstant.LastExitReason.ABILITY_NOT_RESPONDING) {
77            console.log('The ability has exit last because the ability was not responding.');
78        }
79    }
80}
81```
82
83## AbilityConstant.OnContinueResult
84
85Ability迁移结果,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)的[onContinue(wantParam)](js-apis-app-ability-uiAbility.md#uiabilityoncontinue)方法进完成相应的返回。
86
87**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
88
89| 名称                          | 值   | 说明                                                         |
90| ----------------------------- | ---- | ------------------------------------------------------------ |
91| AGREE           | 0    | 同意。 |
92| REJECT           | 1    | 拒绝。 |
93| MISMATCH  | 2    | 不匹配。|
94
95**示例:**
96
97```ts
98import UIAbility from '@ohos.app.ability.UIAbility';
99
100class MyAbility extends UIAbility {
101    onContinue(wantParam) {
102        return AbilityConstant.OnContinueResult.AGREE;
103    }
104}
105```
106
107## AbilityConstant.WindowMode
108
109启动Ability时的窗口模式,该类型为枚举,可配合startAbility使用指定启动Ability的窗口模式。
110
111**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
112
113**系统API**: 此接口为系统接口,三方应用不支持调用。
114
115| 名称                        | 值 | 说明                 |
116| ---                         | --- | ---                  |
117| WINDOW_MODE_UNDEFINED       | 0   | 未定义窗口模式。       |
118| WINDOW_MODE_FULLSCREEN      | 1   | 全屏模式。            |
119| WINDOW_MODE_SPLIT_PRIMARY   | 100 | 屏幕如果是水平方向表示左分屏,屏幕如果是竖直方向表示上分屏。   |
120| WINDOW_MODE_SPLIT_SECONDARY | 101 | 屏幕如果是水平方向表示右分屏,屏幕如果是竖直方向表示下分屏。   |
121| WINDOW_MODE_FLOATING        | 102 | 自由悬浮形式窗口模式。 |
122
123**示例:**
124
125```ts
126let want = {
127    bundleName: 'com.example.myapplication',
128    abilityName: 'EntryAbility'
129};
130let option = {
131    windowMode: AbilityConstant.WindowMode.WINDOW_MODE_FULLSCREEN
132};
133
134// 确保从上下文获取到context
135this.context.startAbility(want, option).then(()=>{
136    console.log('Succeed to start ability.');
137}).catch((error)=>{
138    console.error('Failed to start ability with error: ${JSON.stringify(error)}');
139});
140```
141
142## AbilityConstant.MemoryLevel
143
144内存级别,该类型为枚举,可配合[Ability](js-apis-app-ability-ability.md)的[onMemoryLevel(level)](js-apis-app-ability-ability.md#abilityonmemorylevel)方法根据level执行不同内存级别的相应操作。
145
146**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
147
148| 名称                         | 值 | 说明                |
149| ---                         | --- | ---           |
150| MEMORY_LEVEL_MODERATE       | 0   | 内存占用适中。 |
151| MEMORY_LEVEL_LOW            | 1   | 内存占用低。   |
152| MEMORY_LEVEL_CRITICAL       | 2   | 内存占用高。   |
153
154**示例:**
155
156```ts
157import UIAbility from '@ohos.app.ability.UIAbility';
158
159class MyAbility extends UIAbility {
160    onMemoryLevel(level) {
161        if (level === AbilityConstant.MemoryLevel.MEMORY_LEVEL_CRITICAL) {
162            console.log('The memory of device is critical, please release some memory.');
163        }
164    }
165}
166```
167
168## AbilityConstant.OnSaveResult
169
170保存应用数据的结果,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)的[onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate)方法完成相应的返回。
171
172**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
173
174| 名称                          | 值   | 说明                                                         |
175| ----------------------------- | ---- | ------------------------------------------------------------ |
176| ALL_AGREE           | 0    | 总是同意保存状态。 |
177| CONTINUATION_REJECT           | 1    | 拒绝迁移保存状态。 |
178| CONTINUATION_MISMATCH  | 2    | 迁移不匹配。|
179| RECOVERY_AGREE           | 3    | 同意恢复保存状态。 |
180| RECOVERY_REJECT  | 4    | 拒绝恢复保存状态。|
181| ALL_REJECT  | 5    | 总是拒绝保存状态。|
182
183**示例:**
184
185```ts
186import UIAbility from '@ohos.app.ability.UIAbility';
187
188class MyAbility extends UIAbility {
189    onSaveState(reason, wantParam) {
190        return AbilityConstant.OnSaveResult.ALL_AGREE;
191    }
192}
193```
194
195## AbilityConstant.StateType
196
197保存应用数据场景原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)的[onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate)方法根据reason的不同类型执行相应操作。
198
199**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
200
201| 名称                          | 值   | 说明                                                         |
202| ----------------------------- | ---- | ------------------------------------------------------------ |
203| CONTINUATION           | 0    | 迁移保存状态。 |
204| APP_RECOVERY           | 1    | 应用恢复保存状态。 |
205
206**示例:**
207
208```ts
209import UIAbility from '@ohos.app.ability.UIAbility';
210
211class MyAbility extends UIAbility {
212    onSaveState(reason, wantParam) {
213        if (reason === AbilityConstant.StateType.CONTINUATION) {
214            console.log('Save the ability data when the ability continuation.');
215        }
216        return AbilityConstant.OnSaveResult.ALL_AGREE;
217    }
218}
219```