js-apis-app-ability-abilityConstant.md 8.6 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 18 19
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
```

## 属性

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

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

## AbilityConstant.LaunchReason

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

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

D
donglin 已提交
31
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
32
| ----------------------------- | ---- | ------------------------------------------------------------ |
D
donglin 已提交
33 34 35 36 37
| 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 已提交
38

D
donglin 已提交
39 40 41 42 43 44 45 46 47 48 49 50 51
**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

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

## AbilityConstant.LastExitReason

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

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

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

D
donglin 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77
**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

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

## AbilityConstant.OnContinueResult 

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

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

D
donglin 已提交
85
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
86 87 88 89 90
| ----------------------------- | ---- | ------------------------------------------------------------ |
| AGREE           | 0    | 同意。 |
| REJECT           | 1    | 拒绝。 |
| MISMATCH  | 2    | 不匹配。|

D
donglin 已提交
91 92 93 94 95 96 97 98 99 100 101 102
**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

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

D
donglin 已提交
103 104
## AbilityConstant.WindowMode

D
donglin 已提交
105
启动Ability时的窗口模式,该类型为枚举,可配合startAbility使用指定启动Ability的窗口模式。
D
donglin 已提交
106 107 108

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

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

D
donglin 已提交
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
**示例:**

```ts
let want = {
    bundleName: "com.test.example",
    abilityName: "MainAbility"
};
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 已提交
136 137
## AbilityConstant.MemoryLevel

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

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

142
| 名称                         | 值 | 说明                |
D
donglin 已提交
143 144 145
| ---                         | --- | ---           |
| MEMORY_LEVEL_MODERATE       | 0   | 内存占用适中。 |
| MEMORY_LEVEL_LOW            | 1   | 内存占用低。   |
D
donglin 已提交
146 147
| MEMORY_LEVEL_CRITICAL       | 2   | 内存占用高。   |

D
donglin 已提交
148 149 150 151 152 153 154 155 156 157 158 159 160 161
**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

class MyAbility extends UIAbility {
    onMemoryLevel(level) {
        if (level == AbilityConstant.MemoryLevel.MEMORY_LEVEL_CRITICAL) {
            console.log("The memory of device is critical, please release some memory.");
        }
    }
}
```

D
donglin 已提交
162 163
## AbilityConstant.OnSaveResult

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

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

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

**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

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

## AbilityConstant.StateType

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

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

D
donglin 已提交
195
| 名称                          | 值   | 说明                                                         |
D
donglin 已提交
196 197 198
| ----------------------------- | ---- | ------------------------------------------------------------ |
| CONTINUATION           | 0    | 迁移保存状态。 |
| APP_RECOVERY           | 1    | 应用恢复保存状态。 |
D
donglin 已提交
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

**示例:**

```ts
import UIAbility form '@ohos.app.ability.UIAbility';

class MyAbility extends UIAbility {
    onSaveState(reason, wantParam) {
        if (reason == AbilityConstant.StateType.CONTINUATION) {
            console.log("Save the ability data when the ability continuation.");
        } 
        return AbilityConstant.OnSaveResult.ALL_AGREE;
    }
}
```