重启应用使用restartApp接口,不需要再用应用恢复提供的重启接口。https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-applicationcontext-V5\#applicationcontextrestartapp12以下内容请参考:1、module.json5中配置支持恢复的Ability。"abilities": [ { "name": "EntryAbility", "recoverable": true, } ]2、新建AbilityStage类,在onCreate中设置启动恢复参数。import appRecovery from '@ohos.app.ability.appRecovery'; import AbilityStage from '@ohos.app.ability.AbilityStage'; import Want from '@ohos.app.ability.Want'; export default class MyAbilityStage extends AbilityStage { onCreate(): void { appRecovery.enableAppRecovery( appRecovery.RestartFlag.ALWAYS_RESTART, appRecovery.SaveOccasionFlag.SAVE_WHEN_ERROR, appRecovery.SaveModeFlag.SAVE_WITH_FILE ); let want: Want ={ bundleName:'com.example.pagesrouter', abilityName:"EntryAbility" } appRecovery.setRestartWant(want) }; };3、在module.json5中的srcEntry中 配置新建的Ability,作为应用启动的ability。"module": { "name": "entry", "srcEntry": "./ets/entryability/MyAbilityStage.ets",4、页面调用。appRecovery.restartApp(); onClick(() => { appRecovery.restartApp(); })内置CD 60秒内只能重启1次。如果appRecovery不能满足需求,可以备份还原方案1。参考如下方案2,在terminateSelf()方法的回调中拉起自己的ability,可以多次重启。//方案二 this.context.terminateSelf(()=>{ Logger.info("应用即将被关闭"); let want: Want ={ bundleName:'com.example.pagesrouter', abilityName:"EntryAbility" } this.context.startAbility(want).then(()=>{ Logger.info("应用被启动"); }) })
重启应用使用restartApp接口,不需要再用应用恢复提供的重启接口。https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-applicationcontext-V5\#applicationcontextrestartapp12
以下内容请参考:
1、module.json5中配置支持恢复的Ability。
2、新建AbilityStage类,在onCreate中设置启动恢复参数。
3、在module.json5中的srcEntry中 配置新建的Ability,作为应用启动的ability。
4、页面调用。
内置CD 60秒内只能重启1次。
如果appRecovery不能满足需求,可以备份还原方案1。参考如下方案2,在terminateSelf()方法的回调中拉起自己的ability,可以多次重启。