From 9e0b8a2263286f3e321b51b79eb3ee93c958f952 Mon Sep 17 00:00:00 2001 From: MapleStory Date: Thu, 3 Nov 2022 12:40:39 +0800 Subject: [PATCH] xapp api reference for appRecoveryAPI Signed-off-by: MapleStory --- .../reference/apis/js-apis-appRecovery.md | 122 ++++++++++++++++++ .../apis/js-apis-application-ability.md | 34 +++++ .../js-apis-application-abilityConstant.md | 27 ++++ 3 files changed, 183 insertions(+) create mode 100644 zh-cn/application-dev/reference/apis/js-apis-appRecovery.md diff --git a/zh-cn/application-dev/reference/apis/js-apis-appRecovery.md b/zh-cn/application-dev/reference/apis/js-apis-appRecovery.md new file mode 100644 index 0000000000..963cf9d861 --- /dev/null +++ b/zh-cn/application-dev/reference/apis/js-apis-appRecovery.md @@ -0,0 +1,122 @@ +# 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(); + } +} + +``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md index 1c67e86ee5..1026501ba9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md @@ -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 diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md b/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md index affcdf6022..61834dc47c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-abilityConstant.md @@ -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 | 应用恢复保存状态。 | -- GitLab