设置初次启动原因、上次退出原因、迁移结果、窗口类型

2024-01-22 18:52 更新

AbilityConstant提供Ability相关的枚举,包括设置初次启动原因、上次退出原因、迁移结果、窗口类型等。

说明

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

导入模块

  1. import AbilityConstant from '@ohos.app.ability.AbilityConstant';

属性

AbilityConstant.LaunchParam

启动参数。

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

名称

类型

可读

可写

说明

launchReason

LaunchReason

枚举类型,表示启动原因。

lastExitReason

LastExitReason

枚举类型,表示最后退出原因。

AbilityConstant.LaunchReason

Ability初次启动原因,该类型为枚举,可配合AbilityonCreate(want, launchParam)方法根据launchParam.launchReason的不同类型执行相应操作。

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

名称

说明

UNKNOWN

0

未知原因。

START_ABILITY

1

通过startAbility接口启动ability。

CALL

2

通过startAbilityByCall接口启动ability。

CONTINUATION

3

跨端设备迁移启动ability。

APP_RECOVERY

4

设置应用恢复后,应用故障时自动恢复启动ability。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onCreate(want, launchParam) {
  4. if (launchParam.launchReason === AbilityConstant.LaunchReason.START_ABILITY) {
  5. console.log('The ability has been started by the way of startAbility.');
  6. }
  7. }
  8. }

AbilityConstant.LastExitReason

Ability上次退出原因,该类型为枚举,可配合AbilityonCreate(want, launchParam)方法根据launchParam.lastExitReason的不同类型执行相应操作。

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

名称

说明

UNKNOWN

0

未知原因。

ABILITY_NOT_RESPONDING

1

ability未响应。

NORMAL

2

正常退出。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onCreate(want, launchParam) {
  4. if (launchParam.lastExitReason === AbilityConstant.LastExitReason.ABILITY_NOT_RESPONDING) {
  5. console.log('The ability has exit last because the ability was not responding.');
  6. }
  7. }
  8. }

AbilityConstant.OnContinueResult

Ability迁移结果,该类型为枚举,可配合AbilityonContinue(wantParam)方法进完成相应的返回。

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

名称

说明

AGREE

0

同意。

REJECT

1

拒绝。

MISMATCH

2

不匹配。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onContinue(wantParam) {
  4. return AbilityConstant.OnContinueResult.AGREE;
  5. }
  6. }

AbilityConstant.MemoryLevel

内存级别,该类型为枚举,可配合AbilityonMemoryLevel(level)方法根据level执行不同内存级别的相应操作。

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

名称

说明

MEMORY_LEVEL_MODERATE

0

内存占用适中。

MEMORY_LEVEL_LOW

1

内存占用低。

MEMORY_LEVEL_CRITICAL

2

内存占用高。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onMemoryLevel(level) {
  4. if (level === AbilityConstant.MemoryLevel.MEMORY_LEVEL_CRITICAL) {
  5. console.log('The memory of device is critical, please release some memory.');
  6. }
  7. }
  8. }

AbilityConstant.OnSaveResult

保存应用数据的结果,该类型为枚举,可配合AbilityonSaveState(reason, wantParam)方法完成相应的返回。

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

名称

说明

ALL_AGREE

0

总是同意保存状态。

CONTINUATION_REJECT

1

拒绝迁移保存状态。

CONTINUATION_MISMATCH

2

迁移不匹配。

RECOVERY_AGREE

3

同意恢复保存状态。

RECOVERY_REJECT

4

拒绝恢复保存状态。

ALL_REJECT

5

总是拒绝保存状态。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onSaveState(reason, wantParam) {
  4. return AbilityConstant.OnSaveResult.ALL_AGREE;
  5. }
  6. }

AbilityConstant.StateType

保存应用数据场景原因,该类型为枚举,可配合AbilityonSaveState(reason, wantParam)方法根据reason的不同类型执行相应操作。

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

名称

说明

CONTINUATION

0

迁移保存状态。

APP_RECOVERY

1

应用恢复保存状态。

示例:

  1. import UIAbility from '@ohos.app.ability.UIAbility';
  2. class MyAbility extends UIAbility {
  3. onSaveState(reason, wantParam) {
  4. if (reason === AbilityConstant.StateType.CONTINUATION) {
  5. console.log('Save the ability data when the ability continuation.');
  6. }
  7. return AbilityConstant.OnSaveResult.ALL_AGREE;
  8. }
  9. }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号