HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第55天,PageAbility的生命周期
HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第55天,PageAbility的生命周期
1、PageAbility组件概述
PageAbility是包含UI界面、提供展示UI能力的应用组件,主要用于与用户交互。
开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现, 生命周期相关回调则通过app.js/app.ets中各个回调函数实现。
2、PageAbility组件配置
PageAbility的相关配置在config.json配置文件的"module"对象的"abilities"对象中,"icon"属性表示Ability图标资源文件的索引, "label"属性表示Ability对用户显示的名称,"skills"属性表示Ability能够接收的want的特征。
表1 PageAbility部分配置项说明
属性名称 | 含义 | 数据类型 | 是否可缺省 |
---|---|---|---|
icon | 表示Ability图标资源文件的索引。取值示例:$media:ability_icon。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含"entity.system.home",则该Ability的icon将同时作为应用的icon。如果存在多个符合条件的Ability,则取位置靠前的Ability的icon作为应用的icon。 | 字符串 | 可缺省,缺省值为空。 |
label | 表示Ability对用户显示的名称。取值可以是Ability名称,也可以是对该名称的资源索引,以支持多语言。如果在该Ability的skills属性中,actions的取值包含 “action.system.home”,entities取值中包含"entity.system.home",则该Ability的label将同时作为应用的label。如果存在多个符合条件的Ability,则取位置靠前的Ability的label作为应用的label。 | 字符串 | 可缺省,缺省值为空。 |
skills | 表示Ability能够接收的want的特征。 | 对象数组 | 可缺省,缺省值为空。 |
3、PageAbility的生命周期
PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下表1所示。
表1 PageAbility生命周期状态说明
生命周期状态 | 生命周期状态说明 |
---|---|
UNINITIALIZED | 未初始状态,为临时状态,PageAbility被创建后会由UNINITIALIZED状态进入INITIAL状态。 |
INITIAL | 初始化状态,也表示停止状态,表示当前PageAbility未运行,PageAbility被启动后由INITIAL态进入INACTIVE状态。 |
INACTIVE | 失去焦点状态,表示当前窗口已显示但是无焦点状态。 |
ACTIVE | 前台激活状态,表示当前窗口已显示,并获取焦点。 |
BACKGROUND | 后台状态,表示当前PageAbility退到后台,PageAbility在被销毁后由BACKGROUND状态进入INITIAL状态,或者重新被激活后由BACKGROUND状态进入ACTIVE状态。 |
应用开发者可以在app.js/app.ets中重写生命周期相关回调函数,PageAbility生命周期相关回调函数见下表。
表2 PageAbility生命周期回调接口说明
接口名 | 接口描述 |
---|---|
onCreate() | Ability第一次启动创建Ability时调用onCreate方法,开发者可以在该方法里做一些应用初始化工作。 |
onDestroy() | 应用退出,销毁Ability对象前调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。 |
onActive() | Ability切换到前台,并且已经获取焦点时调用onActive方法。 |
onInactive() | Ability失去焦点时调用onInactive方法,Ability在进入后台状态时会先失去焦点,再进入后台。 |
onShow() | Ability由后台不可见状态切换到前台可见状态调用onShow方法,此时用户在屏幕可以看到该Ability。 |
onHide() | Ability由前台切换到后台不可见状态时调用onHide方法,此时用户在屏幕看不到该Ability。 |
PageAbility生命周期回调与生命周期状态的关系如下图所示。
图2 PageAbility生命周期回调与生命周期状态的关系
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第55天,PageAbility的生命周期的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS中,PageAbility是应用的基本组件之一,负责管理页面的生命周期。PageAbility的生命周期包括以下几个主要阶段:
- onStart():当PageAbility启动时调用,用于初始化页面和资源。
- onActive():当PageAbility从后台进入前台时调用,表示页面处于活动状态。
- onInactive():当PageAbility从前台进入后台时调用,表示页面不再处于活动状态。
- onBackground():当PageAbility进入后台时调用,可以在此释放部分资源。
- onForeground():当PageAbility从后台返回前台时调用,用于恢复页面状态。
- onStop():当PageAbility停止时调用,用于释放所有资源。
这些生命周期方法允许开发者在不同阶段执行相应的操作,确保页面的正确加载、显示和资源管理。
更多关于HarmonyOS 鸿蒙Next ArkTS语言教程入门学习第55天,PageAbility的生命周期的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS的ArkTS语言中,PageAbility的生命周期包括以下几个关键阶段:
onCreate()
:当PageAbility被创建时调用,用于初始化资源和设置。onStart()
:当PageAbility即将进入前台时调用,准备显示界面。onActive()
:当PageAbility获得焦点并开始与用户交互时调用。onInactive()
:当PageAbility失去焦点但仍可见时调用。onBackground()
:当PageAbility进入后台时调用,释放不必要的资源。onStop()
:当PageAbility不再可见时调用,进行清理工作。onDestroy()
:当PageAbility被销毁时调用,释放所有资源。
理解这些生命周期方法有助于更好地管理PageAbility的状态和资源。