harmonyOS:关于Page Ability生命周期详解✨一文搞懂✨
作者:互联网
文章目录
前言
最近学习Ability这个东西,说实话有点难搞,所以在这里整理一下并分享。
一.Ability概述
官方:Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。
仅个人理解:Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型
1.FA(Feature Ability)可以比作你打开一个应用里面的各种页面,然后这些页面,组成了一个应用这里的FA其实可以约等于为Page Ability约等于page
,因为我们在建立FA的时候,他会自动关联Slice,然后多余的AbilitySlice可以通过addActionRoute()方法来添加。
2.PA(Particle Ability)其中PA支持Service Ability和Data Ability,然后这两个我基于官方文档所理解的是它们都是为前面FA所服务的,为FA提供数据支持,后台运行的能力
二.Page Ability生命周期
关于Page Ability的生命周期其实看懂官方文档的一张图片就能搞懂,往下看
1.准备工作
要搞清page跳转时,所发生的一切,我们先写一个跳转代码,然后做好日志,不会的小伙伴看下面的文章
【鸿蒙征程】五.实现页面的跳转✨有参,无参,返回值✨
MainAbility的onStart代码跳转
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
// 点击事件的监听
text = (Text) findComponentById(ResourceTable.Id_text_helloworld);
text.setClickedListener(Component -> {
Intent intent1 = new Intent();
ElementName mainAbility2 = new ElementName("", "com.harmony.hms3","MainAbility2");
intent1.setElement(mainAbility2);
startAbility(intent1);
});
}
Ctrl+o,调用这些方法,onStart原本就有了。不用再次调用,把下面的代码放在onStart方法的下面,大家最好自己用Ctrl+o调用,加深印象
@Override
protected void onActive() {
HiLog.info(LOG_LABEL,"+++++onActive");
super.onActive();
}
@Override
protected void onInactive() {
super.onInactive();
HiLog.info(LOG_LABEL,"+++++++onInactive");
}
@Override
protected void onBackground() {
super.onBackground();
HiLog.info(LOG_LABEL,"+++++onBackground");
}
@Override
protected void onForeground(Intent intent) {
super.onForeground(intent);
HiLog.info(LOG_LABEL,"+++++onForeground");
}
@Override
protected void onStop() {
super.onStop();
HiLog.info(LOG_LABEL,"+++++onStop");
}
对这些方法进行重写,然后呢每个方法上面加一个日志。日志里面就放这些方法的名字就行了,还有容易找到的特殊符号
2.一阶段运行程序时
初始状态:
INACTIVE状态是一种短暂存在的状态,可理解为“激活中
”
初始状态INITIAL—>到onStart方法—>进入INACTIVE方法—>调用onActive方法—>再到激活状态ACTIVE
HiLog日志输出:
3.二阶段ACTIVE的状态
上一个过程已经到达了ACTIVE的状态。紧接着
然后点击“你好,世界”,跳转到下一个页面“hello1111”
也就是由ACTIVE -->到onInactive(),在到达INACTIVE时,与此同时我们马上点击返回,马上回到“你好,世界”的界面,然后又到达onActive(),可以看到日志输出了这两个我打的记号。
3.三阶段
在第二阶段我们回到了ACTIVE的状态,也就是第一步的状态,接下来我们点击“hello,world”,不返回,就停留在这个界面
然后日志就输出了,下面两个+++++++onInactive和+++++onBackground
4.四阶段
在第三阶段的基础上,我们再返回到“你好,世界”的界面,BACKGROUD–>onForegroud()方法–>再到INACTIVE状态–>又调用onActive方法,
5.五阶段onStop()方法
再来看如何用onStop()方法
首先在“你好,世界”的界面,然后返回到桌面,又可以看到日志输出了三个记号,因为从ACTIVE开始到返回桌面这个过程要经过onInactive–>INACTIVE–>onBackground–>onStop,就这个过程
总结
page页面总共4个状态,在程序运行时这几个状态来回的不停的切换:初始状态-->非激活状态-->激活状态-->后台BACKGROUND状态
在状态切换时又有几个方法在调用:onStart(),onActive(),onInactive(),onBackground(),onForeground(),onStop()
本文含个人理解,如有不恰当欢迎来指正,qq:2024810652
如果对你有帮助,给个赞吧 标签:onActive,Ability,onStart,harmonyOS,onStop,ACTIVE,搞懂,日志
来源: https://blog.csdn.net/m0_53088614/article/details/120855249