HarmonyOS 调用重启api appRecovery.restartApp\(\)无反应?

如题:HarmonyOS 调用重启api appRecovery.restartApp()无反应?

阅读 714
1 个回答

参照下以下步骤确认下是否均已配置:

  1. 创建Ability:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';

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:Want = {
      bundleName:'com.example.apprestartdemo',
      abilityName:"EntryAbility" // 需要拉起的Ability
    }
    appRecovery.setRestartWant(want)
  }
}
  1. 配置Ability作为启动ability

module.json5文件中

"module": {
  "name": "entry",
  "srcEntry": "./ets/AbilityStage/MyAbilityStage.ets",
  ...
  1. 设置需要重启的UIAiblity

module.json5文件中

"abilities": [
{
  "name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"recoverable": true,
  ...
  1. 页面执行重启APP的操作:
Row() {
  Column() {
    Text(this.message)
      .fontSize(50)
      .fontWeight(FontWeight.Bold)
    Blank()
    Button('AppRestart')
      .onClick(() => {
        // 重启App
        appRecovery.restartApp();
      })
  }
  .width('100%')
}
.height('100%')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进