前言:
UIAbility组件:是一种包含UI的应用组件,主要用于和用户交互。
ExtensionAbility组件:是基于特定场景(例服务卡片、输入法等)提供的应用组件。每一个具体场景对应一个ExtensionAbilityType,开发者只能使用系统已定义的模型。
HAP:应用安装的基本单位。
AbilityStage:Module级别的组件容器,与HAP是一一对应的关系。
应用组件与窗口生命周期分离:
1、业务逻辑和UI逻辑分离
2、便于系统对应组件进行裁剪
3、在多设备上,应用组件可使用同一套生命周期
一、AbilityStage的定义和能力
1、定义
Module级别的组件容器,是HAP的运行期类
2、能力
a、onCreate():AbilityStage实例创建完成后触发的回调函数
b、onAcceptWant():指定实例模式的UIAbility组件启动时触发的回调函数
c、onConfigurationUpdated():系统发生全局配置变化时的回调函数
d、onMemoryLevel():系统决定调整内存时的回调函数
二、AbilityStage的创建和使用
1、在工程Module对应的ets目录下,右键选择“New > Directory”,新建一个目录并命名为myabilitystage
2、在myabilitystage目录,右键选择“New > ArkTS File”,新建一个文件并命名为MyAbilityStage.ts
3、打开MyAbilityStage.ts文件,导入AbilityStage的依赖包,自定义类继承AbilityStage并加上需要的生命周期回调
import { AbilityStage, Want } from '@kit.AbilityKit';
export default class MyAbilityStage extends AbilityStage {
onCreate(): void {
// 应用的HAP在首次加载的时,为该Module初始化操作
}
onAcceptWant(want: Want): string {
// 仅specified模式下触发
return 'MyAbilityStage';
}
}
4、在module.json5配置文件中,通过配置 srcEntry 参数来指定模块对应的代码路径,以作为HAP加载的入口
{
"module": {
"name": "entry",
"type": "entry",
"srcEntry": "./ets/myabilitystage/MyAbilityStage.ts",
...
}
}