目录

HarmonyOS-OpenHarmony-双击返回与退出App_harmonyos-返回退出应用1

HarmonyOS OpenHarmony 双击返回与退出App_harmonyos 返回退出应用(1)

https://i-blog.csdnimg.cn/blog_migrate/9f19647071b7507068655a574fddf8a2.png

https://i-blog.csdnimg.cn/blog_migrate/2a94f4bf43690a251a5bb36d4839959f.png

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 允许在生命周期函数中使用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) {
// 第一次点击返回键,提示 toast
prompt.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。
      }

![img](https://img-blog.csdnimg.cn/img_convert/c6f44ece1f94d486d093ea713942a4b4.png)
![img](https://img-blog.csdnimg.cn/img_convert/5e0674e173f306b05ba08056ff8d140e.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618636735)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事 IT 行业的老鸟或是对 IT 行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

6735)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事 IT 行业的老鸟或是对 IT 行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**