应用退出指南
介绍
本示例展示了应用退出的相关场景和方法,包含UIAbility终止和返回键处理等功能。当用户执行返回操作或应用需要主动退出时,开发者可以通过相应的方法来控制应用的行为。
本示例包含以下子模块:
- terminateSelf:演示如何使用
terminateSelf()方法主动退出 UIAbility - onBackPressed:演示如何监听系统返回键事件并自定义处理逻辑
效果预览
- terminateSelf:应用启动2秒后自动退出

- onBackPressed:点击返回键时应用退出

使用说明
terminateSelf
- 打开工程
- 进入
terminateSelf/src/main/ets/terminateselfability目录,查看TerminateSelfAbility.ets文件 - 运行应用,应用会在启动2秒后自动调用
terminateSelf()退出
关键代码:
onForeground(): void {
// 获取UIAbilityContext
let context = this.context;
setTimeout(() => {
context.terminateSelf().then(() => {
console.info('Succeeded in terminating self.');
}).catch((err: BusinessError) => {
console.error(`Failed to terminate self. Code is ${err.code}, message is ${err.message}`);
});
}, 2000);
}
onBackPressed
- 打开工程
- 进入
onBackPressed/src/main/ets/onbackpressedability目录,查看OnBackPressedAbility.ets文件 - 运行应用,点击返回键时应用会退出
关键代码:
onBackPressed() {
// 调用terminateSelf退出UIAbility
this.context.terminateSelf().then(() => {
console.info('Succeeded in terminating self.');
}).catch((err: BusinessError) => {
console.error(`Failed to terminate self. Code is ${err.code}, message is ${err.message}`);
});
// 返回true表示消费该事件,不再进行默认处理
return true;
}
工程目录
GuideForAppExit/
├── AppScope
│ ├── resources
│ ├── app.json5 // 应用级配置文件
├── onBackPressed // 返回键处理示例
│ ├── src/main/ets
│ │ ├── onbackpressedability
│ │ │ └── OnBackPressedAbility.ets // onBackPressed处理逻辑
│ │ └── pages
│ │ └── Index.ets // 首页
│ ├── src/ohosTest/ets/test
│ │ ├── Ability.test.ets // Ability测试用例
│ │ └── List.test.ets // List测试用例
│ └── build-profile.json5 // 模块级配置文件
├── terminateSelf // 主动退出示例
│ ├── src/main/ets
│ │ ├── terminateselfability
│ │ │ └── TerminateSelfAbility.ets // terminateSelf逻辑
│ │ └── pages
│ │ └── Index.ets // 首页
│ ├── src/ohosTest/ets/test
│ │ ├── Ability.test.ets // Ability测试用例
│ │ └── List.test.ets // List测试用例
│ └── build-profile.json5 // 模块级配置文件
└── oh-package.json5 // 依赖配置文件
具体实现
terminateSelf
演示如何主动退出 UIAbility,源码参考: TerminateSelfAbility.ets
- 使用
context.terminateSelf()方法主动终止当前 UIAbility 实例 - 支持Promise异步处理,可以在成功/失败回调中进行相应操作
- 适用于需要主动退出应用的场景,如任务完成、用户点击退出按钮等
onBackPressed
演示如何监听和处理返回键事件,源码参考: OnBackPressedAbility.ets
- 实现
onBackPressed()方法监听返回键事件 - 返回
true表示消费该事件,阻止系统默认行为 - 返回
false表示不消费该事件,继续系统默认处理 - 适用于自定义返回键行为的场景
相关权限
不涉及
依赖
不涉及
约束与限制
- 本示例仅支持标准系统上运行,支持设备:RK3568。
- 本示例为Stage模型,支持API20版本SDK,版本号:6.0.0.47。
- 本示例需要使用DevEco Studio 6.0.0及以上版本才可编译运行。
terminateSelf()方法只能在 UIAbility 的生命周期中调用,不能在Worker线程中调用。onBackPressed()方法需要在 UIAbility 中实现,系统返回键事件才会被捕获。