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

2024-03-15 1399阅读

温馨提示:这篇文章已超过409天没有更新,请注意相关的内容是否还可用!

摘要

作者:红目香薰

团队:坚果派

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

目录

摘要

UIAbility生命周期

多种生命周期状态

UlAbility生命周期回调文件

总结


 

UIAbility生命周期

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

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

多种生命周期状态

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

Create、Foreground、Background、Destroy

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

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

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

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的销毁。

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

UlAbility生命周期回调文件

这是对应的回调文件。

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

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

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

总结

  1. UlAbility是种包含 用户界面的应用组件,用于和用户进行交互,UIAbility是系统调度的单元、提供窗口用于界面绘制。
  2. UIAbility的创建和对应页面的创建。
  3. UlAbility内页面间的跳转。
  4. UIAbility的创建、前后台切换、销毁的生命周期状态。
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]