鸿蒙App开发实战,Ability和AbilitySlice,有生命周期?
头像 宋你一朵小红花 2021-06-21 10:11:26    发布
3683 浏览 10 点赞 11 收藏

用户操作等行为均会引起页面实例在其生命周期的不同状态之间进行转换,Ability类提供的回调机制能够让其感知外界的变化,从而执行不同的方法。生命周期的不同状态转换及其对应的回调,如图8.1所示。

鸿蒙App开发实战,Ability和AbilitySlice,有生命周期?-鸿蒙开发者社区


图 8.1 生命周期

说白点,就是窗口(页面),在启动时,切换时,隐藏时,关闭时会执行对应的回调方法,方便程序员进行相关的处理。如关闭窗口时,进行资源释放。

onStart()方法

首次创建页面实例时,触发该回调方法,在其生命周期过程中仅触发一次。一般在此执行Ability的初始化工作,如加载布局模板。

@Override

public void onStart(Intent intent) {

super.onStart(intent);

super.setUIContent(ResourceTable.Layout_ability_main);

}

onActive()方法

当Ability可见且获得用户焦点能交互时系统会调用这个方法,在这可处理在onStart()之后的一些补充工作。

@Override

public void onActive() {

}

onInactive()方法

当Ability失去焦点时,系统将调用此回调,此后进入INACTIVE状态。程序员可以在此回调中实现页面在失去焦点时需要进行处理的业务,如保存临时数据。

@Override

public void onInactive() {

}

onBackground()方法

在Ability不再对用户可见时,系统将调用此回调,如用户跳转到其他窗口时,会隐藏这个Ability。程序员可以在此方法中释放Ability不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。

@Override

public void onBackground() {

}

onForeground()方法

处于BACKGROUND状态的Ability仍然驻留在内存中,当重新回到前台时,如用户导航到此Ability时,将会回调这个onForeground()。

@Override

public void onForeground(Intent intent) {

}

onStop()

系统将要销毁Ability时,将会触发此回调函数,通知用户进行系统资源的释放。

@Override

public void onStop() {

}

以上方法告诉你,人到什么时候,就该做什么事,鸿蒙出来了,该学鸿蒙App开发时就学。否则将错失良机。

AbilitySlice作为Ability的组成单元,其生命周期是依托于其所属Ability生命周期的。AbilitySlice和Page具有相同的生命周期状态和同名的回调,当Ability生命周期发生变化时,它的AbilitySlice也会发生相同的生命周期变化,它与Ability的相应回调类似,因此不再赘述。

回调方法,不是每一个都会被用到的,不用特意背记。在项目实战时,你就能清楚地知道用到哪一些了。

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255