当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。
UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示
Create状态
Create状态为在应用加载过程中,UIAbility实例创建完成时触发,系统会调用onCreate()回调。可以在该回调中进行页面初始化操作,例如变量定义资源加载等,用于后续的UI展示
WindowStageCreate和WindowStageDestroy状态
UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载、设置WindowStage的事件订阅
在onWindowStageCreate()回调中通过loadContent()方法设置应用要加载的页面,并根据需要调用on('windowStageEvent')方法订阅WindowStage的事件(获焦/失焦、切到前台/切到后台、前台可交互/前台不可交互)。对应于onWindowStageCreate()回调。在UIAbility实例销毁之前,则会先进入onWindowStageDestroy()回调,可以在该回调中释放UI资源。对应onWindowStageWillDestroy()回调,在WindowStage销毁前执行,此时WindowStage可以使用。
Foreground和Background状态
Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发,对应于onForeground()回调和onBackground()回调。
onForeground()回调,在UIAbility的UI可见之前,如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源,或者重新申请在onBackground()中释放的资源。
onBackground()回调,在UIAbility的UI完全不可见之后,如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI不可见时无用的资源,或者在此回调中执行较为耗时的操作,例如状态保存等。
当应用的UIAbility实例已创建,且UIAbility配置为singleton启动模式时,再次调用startAbility()方法启动该UIAbility实例时,只会进入该UIAbility的onNewWant()回调,不会进入其onCreate()和onWindowStageCreate()生命周期回调。应用可以在该回调中更新要加载的资源和数据等,用于后续的UI展示。
Destroy状态
Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。
相关推荐
UIAbility 的创建与启动是 HarmonyOS 应用生命周期的一部分。当用户启动一个包含 UI 的应用时,系统会创建一个 UIAbility 实例并调用其 `onStart` 方法。在此阶段,开发者可以初始化 UI 组件,并设置初始显示内容。...
6. 布局方式和组件交互:文档讲述了包括自适应布局、栅格布局、折行能力等在内的多种布局方式,以及UIAbility组件之间的交互,包括页面跳转、数据传递和生命周期管理。 7. 关系型数据库和UIAbility组件:介绍了如何...
内容概要:本文详细解析了鸿蒙操作系统的开发相关内容,主要包括鸿蒙OS的基础知识及其特性的介绍,UI相关组件和布局的实现方式,深入讨论了鸿蒙中UIAbility及其生命周期管理、组件间的通信方式,如使用@Prop,@Link等...
2. UIAbility 的生命周期包括 Create、WindowStageCreate、Foreground、Background、WindowStageDestroy 和 Destroy 六个状态。这些状态反映了 UIAbility 在运行过程中的不同阶段。 3. UIAbility 有三种启动模式:...
2. **UIAbility 的生命周期包括 Create、WindowStageCreate、Foreground、Background、WindowStageDestroy 和 Destroy。**这些状态体现了 UIAbility 从创建到销毁的整个过程。 3. **UIAbility 有 Standard、...
UIAbility 提供了生命周期管理和用户界面渲染的能力,使得开发者可以专注于业务逻辑的实现。 在描述中提到的“页面跳转”是移动应用中常见的功能,它允许用户在不同的界面之间导航。在 HarmonyOS 中,我们可以通过 ...
UIAbility组件主要负责与用户交互,展示UI能力。而ExtensionAbility组件则提供特定场景下的扩展能力,如卡片、输入法等。这两种组件共同构成了鸿蒙应用的基础。 开发方式上,鸿蒙应用采用面向对象的开发方式,将...
- **合理使用生命周期**:正确处理生命周期事件,避免在关键生命周期钩子中执行耗时操作。 - **首页组件按需创建**:只在真正需要的时候创建首页组件,避免不必要的资源消耗。 - **使用异步机制**:通过异步机制来...
首先,面试者需要掌握鸿蒙OS的基础概念,如UIAbility组件的作用,ArkTS语言的使用,以及如何利用ArtTS管理全局数据。了解builder和builderParam的区别可以帮助面试者更好地理解鸿蒙OS的页面构建过程。同时,组件通信...
- **键值型数据库**:概述、约束限制和常用方法,示例代码展示如何在生命周期函数中添加代码,创建KVStoreUtil工具类以及在页面中操作数据库。 - **关系型数据库**:运行机制、约束限制和常用方法,创建实体类和...
然后,在页面的生命周期方法中,例如onStart(),我们可以调用Canvas的drawRect()方法来绘制矩形。通过设置Paint的不同属性,我们可以实现彩色填充、描边等效果。 此外,ArkGraphics 2D还支持文本的绘制。我们可以...
这项测试涉及的技术点包括但不限于:应用的安装卸载机制、权限管理、应用间的数据交互、服务发现机制以及系统对Ability的生命周期管理等。成功的“hideAbility”能力测试能够保障用户在使用应用时的安全性和隐私性,...
- 掌握Ability的生命周期管理。 - 学习如何在Ability之间实现页面跳转与数据传递。 - 使用AbilityContext启动其他Ability,并利用Want进行参数传递。 **2.3 实验内容** - **任务一:实现页面间的跳转** - 实现从...