HarmonyOS/OpenHarmony 双击返回与退出App
admin
2024-05-02 12:04:59

作者:坚果,公众号:”大前端之旅“,哔哩哔哩,OpenHarmony布道师,OpenHarmony校源行开源大使,电子发烧友鸿蒙MVP,51CTO博客专家博主,阿里云博客专家。

有时候我们会遇到这样的一个需求,就是双击返回与退出App

那么在HarmonyOS/OpenHarmony中如何如何实现呢,

HarmonyOS测试环境:ApI8,HarmonyOS3,

Open Harmony测试环境:ApI9,OpenHarmony3.2.beta4

在此之前,我们需要先来了解一下一下自定义组件的声明周期

自定义组件的声明周期

自定义组件的生命周期回调函数用于通知用户该自定义组件的生命周期,这些回调函数是私有的,在运行时由开发框架在特定的时间进行调用,不能从应用程序中手动调用这些回调函数。

需要提前说明的两个注意点是:

  • 允许在生命周期函数中使用Promise和异步回调函数,比如网络资源获取,定时器设置等;
  • 不允许在生命周期函数中使用async await。

接下来我们就来看一下组件声明周期

aboutToAppear

aboutToAppear函数在创建自定义组件的新实例后,在执行其build函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build函数中生效。

aboutToDisappear

aboutToDisappear函数在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。

onPageShow

页面每次显示时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。

onPageHide

页面每次隐藏时触发一次,包括路由过程、应用进入前后台等场景,仅@Entry修饰的自定义组件生效。

onBackPress

当用户点击返回按钮时触发,仅@Entry修饰的自定义组件生效。返回true表示页面自己处理返回逻辑,不进行页面路由,返回false表示使用默认的路由返回逻辑。不设置返回值按照false处理。

看完声明周期的解释大家也就知道在哪儿对双击返回与界面退出提示做出逻辑处理了,对就是在onBackPress

接下来就看完整代码,就是对点击时间的一个比较。

然后那就是

@system.app (应用上下文)

在使用的时候需要先导入。

import app from '@system.app';

app.terminate

退出当前Ability。

import app from '@system.app';
import prompt from '@ohos.prompt';@Entry
@Component
struct Index {@State message: string = 'Hello World'// 记录上一次点击时间private pretime: number = new Date().getTime();onBackPress() {if (-1 == this.pretime) {// 第一次点击返回键,提示toastprompt.showToast({message: "再按一次退出应用"})return true;} else {let currentTime = new Date().getTime();let flag = currentTime - this.pretime;if (flag > 2000) {//两次点击时间太长不做处理this.pretime = currentTime;return true;} else {app.terminate(); // 2秒内点击,退出当前Ability。}}return false;}build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}.width('100%')}.height('100%')}
}

相关内容

热门资讯

天山冰雪迎客来(图片新闻) 天... 新疆维吾尔自治区昌吉回族自治州天山天池风景区利用丰富的冰雪旅游资源开展多场文化、体育、旅游等冰雪相关...
喝酒,要选晚上,才不会误事!暮... 喝酒,要选晚上,才不会误事! 暮色四合时小酌最为相宜。这不仅顺应人体自然节律,更蕴含着养生妙谛。晨...
吃广西横县的鸭肉生,端上桌鸭肉... 作者丨发财金刚 广西横县人对美食的追求,有自己的一套赤诚法则。 高端的食材往往只需要简单的烹饪,这句...
白茶的冲泡方法 冲泡白茶常见的方法有杯泡法、壶泡法、煮饮法、盖碗法、冷泡法等。 (1) 杯泡法。对于白毫银针和等级较...
原创 川... 标题:川菜大厨:腌腊肉时,别只会放盐,多做2步,腊味提升“1倍” 在四川的厨房里,腌制腊肉是一门艺...