未验证 提交 8f08f0fd 编写于 作者: O openharmony_ci 提交者: Gitee

!11237 添加appRecovery相关接口的reference

Merge pull request !11237 from Maplestory_zeng/monthly_20221018
# appRecovery
appRecovery模块提供应用故障状态恢复能力。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。当前版本仅支持单进程中单Ability的应用恢复。
## 导入模块
```
import appRecovery from '@ohos.application.appRecovery'
```
## appRecovery.RestartFlag
[enableAppRecovery](#apprecoveryenableapprecovery)接口重启选项参数。
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 变量 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| ALWAYS_RESTART | 0 | 总是重启应用。 |
| CPP_CRASH_NO_RESTART | 1 | 发生CPP_CRASH时不重启应用。 |
| JS_CRASH_NO_RESTART | 2 | 发生JS_CRASH时不重启应用。 |
| APP_FREEZE_NO_RESTART | 4 | 发生APP_FREEZE时不重启应用。 |
| NO_RESTART | 65535 | 总是不重启应用。 |
## appRecovery.SaveOccasionFlag
[enableAppRecovery](#apprecoveryenableapprecovery)接口状态保存时机选项参数。
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 变量 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| SAVE_WHEN_ERROR | 1 | 当发生应用故障时保存。 |
| SAVE_WHEN_BACKGROUND | 2 | 当应用切入后台时保存。 |
## appRecovery.SaveModeFlag
[enableAppRecovery](#apprecoveryenableapprecovery)接口状态保存方式的参数。
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 变量 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| SAVE_WITH_FILE | 1 | 每次状态保存都会写入到本地文件缓存。 |
| SAVE_WITH_SHARED_MEMORY | 2 | 状态先保存在内存中,应用故障退出时写入到本地文件缓存。 |
## appRecovery.enableAppRecovery
enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void;
使能应用恢复功能,参数按顺序填入。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| restart | [RestartFlag](#apprecoveryrestartflag) | 否 | 发生对应故障时是否重启,默认为不重启 |
| saveOccasion | [SaveOccasionFlag](#apprecoverysaveoccasionflag) | 否 | 状态保存时机,默认为故障时保存 |
| saveMode | [SaveModeFlag](#apprecoverysavemodeflag) | 否 | 状态保存方式, 默认为文件缓存 |
**示例:**
```js
export default class MyAbilityStage extends AbilityStage {
onCreate() {
appRecovery.enableAppRecovery(RestartFlag::ALWAYS_RESTART, SaveOccasionFlag::SAVE_WHEN_ERROR, SaveModeFlag::SAVE_WITH_FILE);
}
}
```
## appRecovery.restartApp
restartApp(): void;
重启当前App进程,可以配合[errorManager](js-apis-errorManager.md#errorobserver)相关接口使用。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
**示例:**
```js
var observer = {
onUnhandledException(errorMsg) {
console.log('onUnhandledException, errorMsg: ', errorMsg)
appRecovery.restartApp();
}
}
```
## appRecovery.saveAppState
saveAppState(): boolean;
保存当前App状态,可以配合[errorManager](js-apis-errorManager.md#errorobserver)相关接口使用
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 保存成功与否。 |
**示例:**
```js
var observer = {
onUnhandledException(errorMsg) {
console.log('onUnhandledException, errorMsg: ', errorMsg)
appRecovery.saveAppState();
}
}
```
......@@ -315,6 +315,40 @@ onMemoryLevel(level: AbilityConstant.MemoryLevel): void;
```
## Ability.onSaveState
onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}): AbilityConstant.OnSaveResult;
该API配合[appRecovery](js-apis-appRecovery.md)使用。在应用故障时,如果使能了自动保存状态,框架将回调onSaveState保存Ability状态。
**系统能力**:SystemCapability.Ability.AbilityRuntime.AbilityCore
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| reason | [AbilityConstant.StateType](js-apis-application-abilityConstant.md#abilityconstantstatetype) | 是 | 回调保存状态的原因 |
| wantParam | {[key: string]: any} | 是 | want相关参数。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| AbilityConstant.OnSaveResult | 是否同意保存当前Ability的状态 |
**示例:**
```js
class myAbility extends Ability {
onSaveState(reason, wantParam) {
console.log('onSaveState');
wantParams["myData"] = "my1234567";
return AbilityConstant.StateType.RECOVERY_AGREE;
}
}
```
## Caller
......
......@@ -36,6 +36,7 @@ import AbilityConstant from '@ohos.application.AbilityConstant';
| START_ABILITY | 1 | 启动能力。 |
| CALL | 2 | 呼叫。 |
| CONTINUATION | 3 | 继续。 |
| APP_RECOVERY | 4 | 状态恢复。 |
## AbilityConstant.LastExitReason
......@@ -88,3 +89,29 @@ import AbilityConstant from '@ohos.application.AbilityConstant';
| MEMORY_LEVEL_MODERATE | 0 | 内存占用适中。 |
| MEMORY_LEVEL_LOW | 1 | 内存占用低。 |
| MEMORY_LEVEL_CRITICAL | 2 | 内存占用高。 |
## AbilityConstant.OnSaveResult
[onSaveState](js-apis-application-ability.md#abilityonsavestate)接口的返回值。
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 变量 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| ALL_AGREE | 0 | 同意保存状态。 |
| CONTINUATION_REJECT | 1 | 拒绝迁移保存状态。 |
| CONTINUATION_MISMATCH | 2 | 迁移不匹配。|
| RECOVERY_AGREE | 3 | 同意恢复保存状态。 |
| RECOVERY_REJECT | 4 | 拒绝恢复保存状态。|
| ALL_REJECT | 5 | 拒绝保存状态。|
## AbilityConstant.StateType
[onSaveState](js-apis-application-ability.md#abilityonsavestate)接口的原因入参
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
| 变量 | 值 | 说明 |
| ----------------------------- | ---- | ------------------------------------------------------------ |
| CONTINUATION | 0 | 迁移保存状态。 |
| APP_RECOVERY | 1 | 应用恢复保存状态。 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册