appRecovery模塊提供了應用在故障狀態下的恢復能力。
說明
本模塊首批接口從API version 9開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。當前版本僅支持單進程中單Ability的應用恢復。
導入模塊
import appRecovery from ‘@ohos.app.ability.appRecovery’;
appRecovery.RestartFlag
應用重啟標志,enableAppRecovery接口重啟選項參數,該類型為枚舉。
系統能力:以下各項對應的系統能力均為SystemCapability.Ability.AbilityRuntime.Core
名稱 | 值 | 說明 |
---|---|---|
ALWAYS_RESTART | 0 | 總是重啟應用。 |
RESTART_WHEN_JS_CRASH | 0x0001 | 發生JS_CRASH時重啟應用。 |
RESTART_WHEN_APP_FREEZE | 0x0002 | 發生APP_FREEZE時重啟應用。 |
NO_RESTART | 0xFFFF | 總是不重啟應用。 |
appRecovery.SaveOccasionFlag
保存條件標志,enableAppRecovery接口狀態保存時的選項參數,該類型為枚舉。
系統能力:以下各項對應的系統能力均為SystemCapability.Ability.AbilityRuntime.Core
名稱 | 值 | 說明 |
---|---|---|
SAVE_WHEN_ERROR | 0x0001 | 當發生應用故障時保存。 |
SAVE_WHEN_BACKGROUND | 0x0002 | 當應用切入后臺時保存。 |
appRecovery.SaveModeFlag
狀態保存標志,enableAppRecovery接口狀態保存方式的參數,該類型為枚舉。
系統能力:以下各項對應的系統能力均為SystemCapability.Ability.AbilityRuntime.Core
名稱 | 值 | 說明 |
---|---|---|
SAVE_WITH_FILE | 0x0001 | 每次狀態保存都會寫入到本地文件緩存。 |
SAVE_WITH_SHARED_MEMORY | 0x0002 | 狀態先保存在內存中,應用故障退出時寫入到本地文件緩存。 |
appRecovery.enableAppRecovery
enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void;
使能應用恢復功能,參數按順序填入。
系統能力:SystemCapability.Ability.AbilityRuntime.Core
參數:
參數名 | 類型 | 必填 | 說明 |
---|---|---|---|
restart | RestartFlag | 否 | 枚舉類型,發生對應故障時是否重啟,默認為不重啟。 |
saveOccasion | SaveOccasionFlag | 否 | 枚舉類型,狀態保存時機,默認為故障時保存。 |
saveMode | SaveModeFlag | 否 | 枚舉類型,狀態保存方式, 默認為文件緩存。 |
示例:
import appRecovery from '@ohos.app.ability.appRecovery'; import AbilityStage from '@ohos.app.ability.AbilityStage'; export default class MyAbilityStage extends AbilityStage { onCreate() { appRecovery.enableAppRecovery( appRecovery.RestartFlag.ALWAYS_RESTART, appRecovery.SaveOccasionFlag.SAVE_WHEN_ERROR, appRecovery.SaveModeFlag.SAVE_WITH_FILE ); } }
appRecovery.restartApp
restartApp(): void;
重啟當前App進程,可以配合errorManager相關接口使用。
系統能力:SystemCapability.Ability.AbilityRuntime.Core
示例:
import appRecovery from '@ohos.app.ability.appRecovery'; import errorManager from '@ohos.app.ability.errorManager'; let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg); appRecovery.restartApp(); } }; try { errorManager.on('error', observer); } catch (paramError) { console.log('error: ' + paramError.code + ', ' + paramError.message); }
appRecovery.saveAppState
saveAppState(): boolean;
保存當前App狀態,可以配合errorManager相關接口使用
系統能力:SystemCapability.Ability.AbilityRuntime.Core
返回值:
類型 | 說明 |
---|---|
boolean | 保存成功與否。true:保存成功,false:保存失敗。 |
示例:
import appRecovery from '@ohos.app.ability.appRecovery'; import errorManager from '@ohos.app.ability.errorManager'; let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg); appRecovery.saveAppState(); } }; try { errorManager.on('error', observer); } catch (paramError) { console.log('error: ' + paramError.code + ', ' + paramError.message); }
審核編輯 黃宇
-
接口
+關注
關注
33文章
8694瀏覽量
151929 -
鴻蒙
+關注
關注
57文章
2392瀏覽量
43059
發布評論請先 登錄
相關推薦
鴻蒙開發接口Ability框架:【@ohos.application.Ability (Ability)】
![<b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.application.Ability</b> (<b class='flag-5'>Ability</b>)】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙開發接口Ability框架:【@ohos.ability.featureAbility (FeatureAbility模塊)】
![<b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.ability</b>.featureAbility (FeatureAbility模塊)】](https://file1.elecfans.com/web2/M00/E0/AF/wKgZomY4loOAFF3hAACaC2ijUOY058.png)
鴻蒙開發接口Ability框架:【@ohos.ability.particleAbility (particleAbility模塊)】
![<b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【@<b class='flag-5'>ohos.ability</b>.particleAbility (particleAbility模塊)】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙原生應用/元服務開發-Stage模型能力接口(九)上
鴻蒙Ability開發-Stage模型下Ability的創建和使用
鴻蒙應用模型開發-更新SDK后報錯解決
跟阿斌一起學鴻蒙(2): Ability vs App?
跟阿斌一起學鴻蒙(2): Ability vs App?
圖解鴻蒙Page Ability的LaunchType
OpenHarmony開發之Ability架構
HarmonyOS/OpenHarmony應用開發-ArkTS的Ability基類
鴻蒙開發之EventHub
![<b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>之</b>EventHub](https://file1.elecfans.com/web2/M00/C0/6E/wKgZomXVmMKAQfJdAABOX-HIl_0501.png)
鴻蒙OS開發實例:【工具類封裝-頁面路由】
![<b class='flag-5'>鴻蒙</b>OS開發實例:【工具類封裝-頁面路由】](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> Kit(程序框架服務)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】](https://file1.elecfans.com/web2/M00/EC/91/wKgaomZfBTaAUYFaAAIK5_JVZ4U512.jpg)
評論