如何在任意页面直接退出HarmonyOS 鸿蒙Next app
如何在任意页面直接退出HarmonyOS 鸿蒙Next app 【设备信息】Mate60
【API版本】Api13
【DevEco Studio版本】5.0.7.200
【问题描述】我想要在Component中直接退出app,返回到系统桌面,请问应该调用哪个api?
参考以下示例:
import { BusinessError } from '@ohos.base';
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Index {
build() {
Column() {
Button('点击退出')
.onClick(() => {
let context = getContext(this) as common.UIAbilityContext;
try {
context.terminateSelf((err: BusinessError) => {
if (err.code) {
// 处理业务逻辑错误
console.error(`failed, code is ${err.code}, message is ${err.message}`);
return;
}
// 执行正常业务
console.info('succeed');
});
} catch (err) {
// 捕获同步的参数错误
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`failed, code is ${code}, message is ${message}`);
}
})
}
}
}
更多关于如何在任意页面直接退出HarmonyOS 鸿蒙Next app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
UIAbilityContext.terminateSelf
terminateSelf(callback: AsyncCallback<void>): void
停止Ability自身。使用callback异步回调。仅支持在主线程调用。
说明
调用该接口后,任务中心的任务默认不会清理,如需清理,需要配置removeMissionAfterTerminate为true。
元服务API:从API version 11开始,该接口支持在元服务中使用。
在HarmonyOS(鸿蒙Next)中,要在任意页面直接退出App,可以使用AbilityContext
的terminateSelf()
方法。该方法会终止当前的Ability(类似于Android中的Activity),从而退出App。
示例代码:
import Ability from '@ohos.application.Ability';
export default class MainAbility extends Ability {
onWindowStageCreate(windowStage) {
// 在需要退出的地方调用terminateSelf()
this.context.terminateSelf();
}
}
terminateSelf()
会立即终止当前的Ability,如果这是App中唯一的Ability,App将会退出。如果App中有多个Ability,调用terminateSelf()
只会终止当前的Ability,不会影响其他Ability的运行。
注意:terminateSelf()
只会终止当前的Ability,不会影响其他Ability或进程。如果需要强制退出整个App,可以考虑使用ProcessManager
的killProcess()
方法,但这可能会影响用户体验。
总结:在鸿蒙Next中,使用terminateSelf()
方法可以在任意页面直接退出当前Ability,从而退出App。