js-apis-app-ability-abilityConstant.md 8.7 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

113
| 名称                        | 值 | 说明                 |
D
donglin 已提交
114 115 116 117 118 119 120
| ---                         | --- | ---                  |
| WINDOW_MODE_UNDEFINED       | 0   | 未定义窗口模式。       |
| WINDOW_MODE_FULLSCREEN      | 1   | 全屏模式。            |
| WINDOW_MODE_SPLIT_PRIMARY   | 100 | 分屏多窗口主要模式。   |
| WINDOW_MODE_SPLIT_SECONDARY | 101 | 分屏多窗口次要模式。   |
| WINDOW_MODE_FLOATING        | 102 | 自由悬浮形式窗口模式。 |

D
donglin 已提交
121 122 123 124
**示例:**

```ts
let want = {
125 126
    bundleName: "com.example.myapplication",
    abilityName: "EntryAbility"
D
donglin 已提交
127 128 129 130 131 132 133 134 135 136 137 138 139
};
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 已提交
140 141
## AbilityConstant.MemoryLevel

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

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

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

D
donglin 已提交
152 153 154
**示例:**

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

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

D
donglin 已提交
166 167
## AbilityConstant.OnSaveResult

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

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

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

**示例:**

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

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

## AbilityConstant.StateType

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

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

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

**示例:**

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

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