【HarmonyOS NEXT】测试环境下手动切换环境变量后使用什么API主动重启APP

【关键字】

测试环境 / 手动切换环境变量 / appRecovery.restartApp

【问题描述】

测试环境下可以手动切换环境变量,切换环境变量后重启才能生效。

1. 直接使用appRecovery.restartApp(),重启app不起作用,报错: AppRecovery not enabled

2. 先调用appRecovery.enableAppRecovery后再调用appRecovery.restartApp,报错 ScheduleRecoverApp ability is nullptr

3. 先调用appRecovery.enableAppRecovery和appRecovery.setRestartWant后再调用appRecovery.restartApp,报错 ScheduleRecoverApp ability is nullptr

请问该场景下应该使用什么API主动重启app?

【解决方案】

具体操作步骤如下:

1、module.json5中配置支持恢复的Ability。

2、新建个ets页面在onCreate中给应用赋能。

3、在module.json5中的srcEntry中配置新建ets的路径。

4、页面调用appRecovery.restartApp();。

代码配置示例如下:

/AbilityStage
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
    );
    let want ={
      bundleName:'com.example.testxx',
      abilityName:"EntryAbility"
    }
    appRecovery.setRestartWant(want)
  }
}
“module”: {
  “name”: “entry”,
  “srcEntry”: ‘./ets/AbilityStage/AbilityStage.ets’,
  …
  “abilities”: [
  {
    “name”: “EntryAbility”,
    …
    “recoverable”: true,
    …
    //page
    .onClick(() => {
    appRecovery.restartApp();
  })

说明:两次重启的间隔需要大于一分钟。

API使用参考如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-apprecovery-0000001821000497

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值