鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
场景介绍
应用在运行中不可避免会产生一些非预期的行为,如运行时抛出未处理的异常和错误,违反框架的调用/运行约束等。
系统默认对异常的处理方式为进程退出,如果应用使用过程中产生了用户数据,直接退出可能会导致用户工作中断,数据丢失。 如果应用在AbilityStage中使能 应用恢复功能,并对临时数据进行保存,应用非预期退出后的下一次启动会恢复先前的状态和数据,给用户更连贯的使用体验。这里状态包括应用的页面栈以及onSaveState接口中保存的数据。
API 9上的应用恢复接口支持单Ability的Stage模型应用开发。支持JsError故障时的状态保存与自动重启。
API 10在API 9的基础上新增支持多Ability的Stage模型应用开发。支持AppFreeze故障时的状态保存回调。支持应用被管控模式杀死后,下次启动的状态恢复。
接口说明
应用故障恢复接口由appRecovery模块提供,开发者可以通过import引入,详见开发示例。
应用恢复接口功能介绍
接口名称 | 说明 |
---|---|
enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void;9+ | 使能应用恢复功能,参数按顺序填入。该接口调用后,应用从启动器启动时第一个Ability支持恢复。 |
saveAppState(): boolean;9+ | 主动保存当前应用中支持恢复的Ability的状态。 |
restartApp(): void;9+ | 重启当前进程,并启动由setRestartWant指定的Ability,如果未指定,将重新拉起处于前台且支持恢复的Ability。 |
saveAppState(context?: UIAbilityContext): boolean;10+ | 主动保存由Context指定的Ability状态。 |
setRestartWant |