HarmonyOS-ArkTS-UIAbility生命周期——【坚果派-红目香薰】

举报
红目香薰 发表于 2024/03/31 18:03:09 2024/03/31
【摘要】 ​摘要作者:红目香薰团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 目录摘要UIAbility生命周期多种生命周期状态UlAbility生命周期回调文件总结UIAbility生命周期浏览、切换和退出应用时,应用中UlAbility实例会在其生命周期的不同状态之间转换。​编辑多种生命周期状态下图中可以看到,UIAbility启动后会大...

摘要

作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 

目录

摘要

UIAbility生命周期

多种生命周期状态

UlAbility生命周期回调文件

总结


UIAbility生命周期

浏览、切换和退出应用时,应用中UlAbility实例会在其生命周期的不同状态之间转换。

​编辑

多种生命周期状态

下图中可以看到,UIAbility启动后会大致分为4个状态

Create、Foreground、Background、Destroy

WindowStageCreate与WindowStageDestroy是UIbility中管理UI界面功能的两个命周期回调。

每个UIAbility都包含了一个UIAbilityContext属性。

​编辑

UIAbility功能主要是处理生命周期,其余操作UIAbility的方法例如:startUIAbility(),connectUIAbility,terminateSelf()等方法,都是在UIAbilityContent中实现的。

Create:在应用加载中UIAbility示例创建完成时触发的。系统会调用onCreate()回调我们可以在该回调中进行应用初始化操作,相当于应用初始化。可以进行变量定义,资源加载等,用于后续的UI页面展示。

WindowStageCreate:UIAbility创建完成之后,在进入Foreground之前,系统会创建一个WindowStage,WindowStage创建完成后会进入onWindowStageCreate回调,我们可以在该回调中设置UI页面加载,设置WindowStage订阅事件,在onWindowStageCreate回调中通过loaclContent()方法设置应用要加载的页面,并根据需要订阅WindowStage事件,例如(获取焦点|失去焦点,可见|不可见)

Foreground与Background状态:分别在UIAbility实例切换至前台后时触发,对应于:【onForeground()】与【onBackground()】回调,onForeground()在UIAbility的UI界面可见之前,如UIAbility切换至前台之前时触发,我们可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源,onBackground()回调在UIAbility的UI界面完全不可见之后,例如UIAbility切换至后台时触发,我们可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。例如在使用过程中需要使用用户定位时假设应用已经获得定位权限授权,在UI界面显示之前,我们可以在onForeground()中开启定位功能,从而获取到当前的位置信息,当应用切换到后台状态,我们可以在onBackground()回调中停止定位功能。

WindowStageDestroy:在UIAbility实例销毁之前,会先进入到onWindowStageDestroy()回调,我们可以在这个回调中释放UI界面的资源,例如在onWindowStageDestroy()中注销获焦|失焦等WindowStage()事件。

Destroy:在UIAbility实例销毁时触发,我们可以在这里进行系统资源的释放,数据的保存等操作,例如,调用terminateSelf()方法停止当前UIAbility实例,从而完成UIAbility实例的销毁,或者用户使用最近任务列表关闭该UIAbility实例,也能完成UIAbility的销毁。

编辑

UlAbility生命周期回调文件

这是对应的回调文件。

​编辑

回调文件内容,这里能看到创建已经操作前后的函数,我们可以打印一个输出语句来测试。

​编辑

总结

1. UlAbility是种包含 用户界面的应用组件,用于和用户进行交互,UIAbility是系统调度的单元、提供窗口用于界面绘制。

2. UIAbility的创建和对应页面的创建。

3. UlAbility内页面间的跳转。

4. UIAbility的创建、前后台切换、销毁的生命周期状态。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。