【关键字】
重启 / restartApp / appRecovery / 恢复
【问题描述】
是否有重启App的API?作用相当于清除后台应用,再次进入。
【解决方案】
可以使用appRecovery.restartApp接口,操作步骤如下:
1.在module.json5中配置支持恢复的Ability。
{
"abilities": [
{
"name": "EntryAbility",
"recoverable": true,
}]
}
2.新建一个ets页面(以AbilityStage为例),在onCreate中给应用赋能。
//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)
}
}
3.在module.json5的srcEntry中配置新建ets的路径。
"module": {
"name": "entry",
"srcEntry": './ets/AbilityStage/AbilityStage.ets',
}
4.页面调用appRecovery.restartApp();
//page
.onClick(() => {
appRecovery.restartApp();
})
注意:该功能有内置CD,60秒内只能重启1次。