js-apis-app-ability-abilityConstant.md 8.8 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.AbilityConstant (AbilityConstant)
D
donglin 已提交
2

Z
zhongjianfei 已提交
3
AbilityConstant提供Ability相关的枚举,包括设置初次启动原因、上次退出原因、迁移结果、窗口类型等。
D
donglin 已提交
4 5 6 7 8 9 10 11

> **说明:**
> 
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
> 本模块接口仅可在Stage模型下使用。

## 导入模块

M
m00512953 已提交
12
```ts
D
donglin 已提交
13 14 15 16 17
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
```

## 属性

M
m00512953 已提交
18 19 20 21
## AbilityConstant.LaunchParam

启动参数。

D
donglin 已提交
22 23
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

Z
zhongjianfei 已提交
24
| 名称 | 类型 | 可读 | 可写 | 说明 |
D
donglin 已提交
25
| -------- | -------- | -------- | -------- | -------- |
D
donglin 已提交
26 27
| launchReason | [LaunchReason](#abilityconstantlaunchreason)| 是 | 是 | 枚举类型,表示启动原因。 |
| lastExitReason | [LastExitReason](#abilityconstantlastexitreason) | 是 | 是 | 枚举类型,表示最后退出原因。 |
D
donglin 已提交
28 29 30

## AbilityConstant.LaunchReason

D
donglin 已提交
31
Ability初次启动原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)[onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate)方法根据launchParam.launchReason的不同类型执行相应操作。
D
donglin 已提交
32 33 34

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
donglin 已提交
35
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
36
| ----------------------------- | ---- | ------------------------------------------------------------ |
D
donglin 已提交
37 38 39 40 41
| UNKNOWN          | 0    | 未知原因。 |
| START_ABILITY          | 1    | 通过[startAbility](js-apis-ability-context.md#abilitycontextstartability)接口启动ability。 |
| CALL | 2    | 通过[startAbilityByCall](js-apis-ability-context.md#abilitycontextstartabilitybycall)接口启动ability。 |
| CONTINUATION           | 3    | 跨端设备迁移启动ability。 |
| APP_RECOVERY           | 4    | 设置应用恢复后,应用故障时自动恢复启动ability。 |
D
donglin 已提交
42

D
donglin 已提交
43 44 45
**示例:**

```ts
D
donglin 已提交
46
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
47 48 49

class MyAbility extends UIAbility {
    onCreate(want, launchParam) {
D
donglin 已提交
50
        if (launchParam.launchReason === AbilityConstant.LaunchReason.START_ABILITY) {
D
donglin 已提交
51 52 53 54 55
            console.log("The ability has been started by the way of startAbility.");
        }
    }
}
```
D
donglin 已提交
56 57 58

## AbilityConstant.LastExitReason

D
donglin 已提交
59
Ability上次退出原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)[onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate)方法根据launchParam.lastExitReason的不同类型执行相应操作。
D
donglin 已提交
60 61 62

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
donglin 已提交
63
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
64
| ----------------------------- | ---- | ------------------------------------------------------------ |
D
donglin 已提交
65 66 67
| UNKNOWN          | 0    | 未知原因。 |
| ABILITY_NOT_RESPONDING          | 1    | ability未响应。 |
| NORMAL | 2    | 正常退出。 |
D
donglin 已提交
68

D
donglin 已提交
69 70 71
**示例:**

```ts
D
donglin 已提交
72
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
73 74 75

class MyAbility extends UIAbility {
    onCreate(want, launchParam) {
D
donglin 已提交
76
        if (launchParam.lastExitReason === AbilityConstant.LastExitReason.ABILITY_NOT_RESPONDING) {
D
donglin 已提交
77 78 79 80 81
            console.log("The ability has exit last because the ability was not responding.");
        }
    }
}
```
D
donglin 已提交
82 83 84

## AbilityConstant.OnContinueResult 

D
donglin 已提交
85
Ability迁移结果,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)[onContinue(wantParam)](js-apis-app-ability-uiAbility.md#uiabilityoncontinue)方法进完成相应的返回。
D
donglin 已提交
86 87 88

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
donglin 已提交
89
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
90 91 92 93 94
| ----------------------------- | ---- | ------------------------------------------------------------ |
| AGREE           | 0    | 同意。 |
| REJECT           | 1    | 拒绝。 |
| MISMATCH  | 2    | 不匹配。|

D
donglin 已提交
95 96 97
**示例:**

```ts
D
donglin 已提交
98
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
99 100 101 102 103 104 105 106

class MyAbility extends UIAbility {
    onContinue(wantParam) {
        return AbilityConstant.OnConinueResult.AGREE;
    }
}
```

D
donglin 已提交
107 108
## AbilityConstant.WindowMode

D
donglin 已提交
109
启动Ability时的窗口模式,该类型为枚举,可配合startAbility使用指定启动Ability的窗口模式。
D
donglin 已提交
110 111 112

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
dy_study 已提交
113 114
**系统API**: 此接口为系统接口,三方应用不支持调用。

115
| 名称                        | 值 | 说明                 |
D
donglin 已提交
116 117 118
| ---                         | --- | ---                  |
| WINDOW_MODE_UNDEFINED       | 0   | 未定义窗口模式。       |
| WINDOW_MODE_FULLSCREEN      | 1   | 全屏模式。            |
M
mingxihua 已提交
119 120
| WINDOW_MODE_SPLIT_PRIMARY   | 100 | 屏幕如果是水平方向表示左分屏,屏幕如果是竖直方向表示上分屏。   |
| WINDOW_MODE_SPLIT_SECONDARY | 101 | 屏幕如果是水平方向表示右分屏,屏幕如果是竖直方向表示下分屏。   |
D
donglin 已提交
121 122
| WINDOW_MODE_FLOATING        | 102 | 自由悬浮形式窗口模式。 |

D
donglin 已提交
123 124 125 126
**示例:**

```ts
let want = {
127 128
    bundleName: "com.example.myapplication",
    abilityName: "EntryAbility"
D
donglin 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141
};
let option = {
    windowMode: AbilityConstant.WindowMode.WINDOW_MODE_FULLSCREEN
};

// 确保从上下文获取到context
this.context.startAbility(want, option).then(()={
    console.log("Succeed to start ability.");
}).catch((error)=>{
    console.log("Failed to start ability with error: " + JSON.stringify(error));
});
```

D
donglin 已提交
142 143
## AbilityConstant.MemoryLevel

D
donglin 已提交
144
内存级别,该类型为枚举,可配合[Ability](js-apis-app-ability-ability.md)[onMemoryLevel(level)](js-apis-app-ability-ability.md#abilityonmemorylevel)方法根据level执行不同内存级别的相应操作。
D
donglin 已提交
145 146 147

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

148
| 名称                         | 值 | 说明                |
D
donglin 已提交
149 150 151
| ---                         | --- | ---           |
| MEMORY_LEVEL_MODERATE       | 0   | 内存占用适中。 |
| MEMORY_LEVEL_LOW            | 1   | 内存占用低。   |
D
donglin 已提交
152 153
| MEMORY_LEVEL_CRITICAL       | 2   | 内存占用高。   |

D
donglin 已提交
154 155 156
**示例:**

```ts
D
donglin 已提交
157
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
158 159 160

class MyAbility extends UIAbility {
    onMemoryLevel(level) {
D
donglin 已提交
161
        if (level === AbilityConstant.MemoryLevel.MEMORY_LEVEL_CRITICAL) {
D
donglin 已提交
162 163 164 165 166 167
            console.log("The memory of device is critical, please release some memory.");
        }
    }
}
```

D
donglin 已提交
168 169
## AbilityConstant.OnSaveResult

D
donglin 已提交
170
保存应用数据的结果,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)[onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate)方法完成相应的返回。
D
donglin 已提交
171 172 173

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
donglin 已提交
174
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
175
| ----------------------------- | ---- | ------------------------------------------------------------ |
D
donglin 已提交
176
| ALL_AGREE           | 0    | 总是同意保存状态。 |
D
donglin 已提交
177 178 179 180
| CONTINUATION_REJECT           | 1    | 拒绝迁移保存状态。 |
| CONTINUATION_MISMATCH  | 2    | 迁移不匹配。|
| RECOVERY_AGREE           | 3    | 同意恢复保存状态。 |
| RECOVERY_REJECT  | 4    | 拒绝恢复保存状态。|
D
donglin 已提交
181 182 183 184 185
| ALL_REJECT  | 5    | 总是拒绝保存状态。|

**示例:**

```ts
D
donglin 已提交
186
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
187 188 189 190 191 192 193

class MyAbility extends UIAbility {
    onSaveState(reason, wantParam) {
        return AbilityConstant.OnSaveResult.ALL_AGREE;
    }
}
```
D
donglin 已提交
194 195 196

## AbilityConstant.StateType

D
donglin 已提交
197
保存应用数据场景原因,该类型为枚举,可配合[Ability](js-apis-app-ability-uiAbility.md)[onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate)方法根据reason的不同类型执行相应操作。
D
donglin 已提交
198 199 200

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

D
donglin 已提交
201
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
202 203 204
| ----------------------------- | ---- | ------------------------------------------------------------ |
| CONTINUATION           | 0    | 迁移保存状态。 |
| APP_RECOVERY           | 1    | 应用恢复保存状态。 |
D
donglin 已提交
205 206 207 208

**示例:**

```ts
D
donglin 已提交
209
import UIAbility from '@ohos.app.ability.UIAbility';
D
donglin 已提交
210 211 212

class MyAbility extends UIAbility {
    onSaveState(reason, wantParam) {
D
donglin 已提交
213
        if (reason === AbilityConstant.StateType.CONTINUATION) {
D
donglin 已提交
214 215 216 217 218 219
            console.log("Save the ability data when the ability continuation.");
        } 
        return AbilityConstant.OnSaveResult.ALL_AGREE;
    }
}
```