`
龙儿筝
  • 浏览: 9732 次
社区版块
存档分类
最新评论

UIAbility组件生命周期

阅读更多

当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。

UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示
img1

Create状态

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

WindowStageCreate和WindowStageDestroy状态

UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调,可以在该回调中设置UI加载、设置WindowStage的事件订阅
img2
在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()回调中进行系统资源的释放、数据的保存等操作。

0
0
分享到:
评论

相关推荐

    HarmonyOS应用实践-UIAbility的使用

    UIAbility 的创建与启动是 HarmonyOS 应用生命周期的一部分。当用户启动一个包含 UI 的应用时,系统会创建一个 UIAbility 实例并调用其 `onStart` 方法。在此阶段,开发者可以初始化 UI 组件,并设置初始显示内容。...

    <HarmonyOS第一课>应用程序框架-闯关习题及答案.docx

    2. **UIAbility 的生命周期包括 Create、WindowStageCreate、Foreground、Background、WindowStageDestroy 和 Destroy。**这些状态体现了 UIAbility 从创建到销毁的整个过程。 3. **UIAbility 有 Standard、...

    HarmonyOS第一课 应用程序框架-闯关习题及答案.docx

    2. UIAbility 的生命周期包括 Create、WindowStageCreate、Foreground、Background、WindowStageDestroy 和 Destroy 六个状态。这些状态反映了 UIAbility 在运行过程中的不同阶段。 3. UIAbility 有三种启动模式:...

    HarmonyOS应用开发者认证题目满分指南

    - UIAbility的生命周期包括Create、WindowStageCreate、Foreground、Background、WindowStageDestroy和Destroy这几个阶段,每个阶段对应特定的操作。 - UIAbility的启动模式有multiton、singleton和specified三种...

    本示例代码用于-HarmonyOS-ArkTS-UIAbility-【坚果派-红目香薰】文章的对应示例

    UIAbility 提供了生命周期管理和用户界面渲染的能力,使得开发者可以专注于业务逻辑的实现。 在描述中提到的“页面跳转”是移动应用中常见的功能,它允许用户在不同的界面之间导航。在 HarmonyOS 中,我们可以通过 ...

    鸿蒙HarmonyOS应用开发者认证 题库+答案案

    每一个自定义组件都有自己的生命周期。 9. 首选项preferences的使用 首选项preferences是以Key-Value形式存储数据,其中Key是唯一的。 10. @Component修饰的自定义组件 所有使用@Component修饰的自定义组件都支持...

    高性能鸿蒙应用开发实践解析-王雷.pdf

    - **合理使用生命周期**:正确处理生命周期事件,避免在关键生命周期钩子中执行耗时操作。 - **首页组件按需创建**:只在真正需要的时候创建首页组件,避免不必要的资源消耗。 - **使用异步机制**:通过异步机制来...

    HarmonyOS最新版基础认证题目(6月21日之后)

    不是所有使用@Component修饰的自定义组件都会自动支持这些生命周期方法,这通常取决于组件的具体实现。 **10. 一个页面可以存在多个@Entry 修饰的组件。** - **解析:** 错误。在HarmonyOS中,通常一个页面只有一个...

    HarmonyOS应用开发者基础题库

    7. **自定义组件生命周期**:包括aboutToAppear、aboutToDisappear、onPageShow、onPageHide和onBackPress等函数,用于管理组件在不同阶段的行为。 8. **变量状态管理**:@State和@Link装饰器可用于管理组件内部...

    鸿蒙HarmonyOS应用开发者高级认证习题汇总(齐全)

    3. **自定义组件生命周期**:并非所有使用`@Component`修饰的自定义组件都支持`onPageShow`,`onBackPress`和`onPageHide`生命周期函数。这些函数通常与页面级Ability相关联,而不是组件。 4. **数据存储**:首选项...

    HarmonyOS应用开发者高级认证 word试题及答案

    3. **生命周期管理**:自定义组件有自己的生命周期,如onPageShow、onBackPress和onPageHide等生命周期函数。 **三、服务和函数** 1. **云函数**:需要在AppGallery Connect创建触发器才能在端侧调用。 2. **HUKS...

    HarmonyOS应用开发者高级认证题库(覆盖99%考题)

    - **解析**:在HarmonyOS开发中,自定义组件确实拥有自己的生命周期,这与标准UI组件类似,包括初始化、显示、隐藏等阶段。 3. **基于端云一体化开发,开发者需要精通前端、后端不同的开发语言**(错误) - **...

    TYUT移动框架(HarmonyOS应用开发)实验指导书

    - 掌握Ability的生命周期管理。 - 学习如何在Ability之间实现页面跳转与数据传递。 - 使用AbilityContext启动其他Ability,并利用Want进行参数传递。 **2.3 实验内容** - **任务一:实现页面间的跳转** - 实现从...

Global site tag (gtag.js) - Google Analytics