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

作者:坚果,公众号:”大前端之旅“,哔哩哔哩,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. 嘴角...
汽车撞了以后会散架爆炸吗 汽车撞了以后会散架爆炸吗汽车撞了以后会散架爆炸吗,一般来说汽车碰撞产生高温引起汽油燃烧才会导致爆炸。...
《风起云涌》新手演示视频攻略 《风起云涌》新手演示视频攻略《风起云涌》是一款即时战略类游戏,游戏的故事设定在荒芜人烟的星球,该星球...
立志奋进的励志名人名言 立志奋进的励志名人名言【 #励志名言# 导语】在学习、工作或生活中,大家都对那些经典的名言很是熟悉...
这是什么花 这是什么花蔷薇科蔷薇属的野蔷薇的变种——七姊妹,又名七姐妹
任达华和妻子的爱情生活,像不像... 任达华和妻子的爱情生活,像不像现实版的童话?像。因为他们是娱乐圈少有的甜蜜,将生活过了二人世界,所以...
求《恐龙大作战》的征文怎么写 求《恐龙大作战》的征文怎么写我还没学过写征文自己先观看,然后可以适当的在知网上找相关素材
求水印大的《衣冠禽兽》全文(包... 求水印大的《衣冠禽兽》全文(包括VIP)在 自由自在完结文库 中有。
北京怎样寻找故友? 北京怎样寻找故友?北京新街口居住过的张乃池女士,张秋生男士现在何处?... 北京新街口居住过的张乃...
长期获胜!为什么美女炒股总是赚... 长期获胜!为什么美女炒股总是赚钱  【前言】我经过多年的总结,发现在股票市场长期能获胜的股民之中,美...
摆动的小球 摆动的小球摆动的小球摆到与竖直呈60度夹角时速度为零,此刻球对绳有拉力吗?咋解释?这其实就是动量守恒...
有哪些名人以前是从消极走向成功... 有哪些名人以前是从消极走向成功的。故事又是怎么样的,他又是怎么想的?不多,一、两个就可以了高祖刘邦,...
江南大学的动画 江南大学的动画我今年拿了江大的合格证,我非常想报江大动画专业,请问动画的学长去年江大动画的录取综合分...
小学生万里长城知识 小学生万里长城知识长城是中华文明的瑰宝,是中国古代人民智慧的结晶,也是中华民族的象征。 长城中国古代...
寻找被自己抛弃的女儿 寻找被自己抛弃的女儿寻找被自己抛弃的女儿难言之隐,有苦衷!留下联系电话号码吧!
关于校园生活的名人名言 关于校园生活的名人名言 1) 学校是造就人的工场。——[捷]夸美纽斯  2) 亡而存之,废而举之...
历史上的5月8日发生了哪些事件... 历史上的5月8日发生了哪些事件?2020年5月8日,李清杉和黄芳迎牵小手谈恋爱
请问这是一部什么电影? 请问这是一部什么电影?预见未来?