生命周期流程图
UIAbility的生命周期官方文档地址
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/uiability-lifecycle-V13
1. onCreate(want: Want, launchParam: LaunchParam)
-
触发时机:Ability首次创建时
-
作用:初始化核心资源和全局数据
-
参数说明:
参数 类型 说明 want Want 包含启动Ability的源信息(如bundleName、abilityName、parameters等) launchParam AbilityConstant.LaunchParam 系统保留参数(当前版本未开放使用)
2. onWindowStageCreate(windowStage: WindowStage)
-
触发时机:UI窗口创建阶段
-
作用:加载UI布局和初始化界面元素
-
参数说明:
参数 类型 说明 windowStage window.WindowStage 窗口管理器对象,通过 loadContent()
方法加载页面
3. onWindowStageWillDestroy(windowStage: WindowStage)
-
触发时机:窗口即将销毁前
-
作用:释放窗口关联资源
-
参数说明:
参数 类型 说明 windowStage window.WindowStage 即将销毁的窗口对象
4. onWindowStageDestroy()
-
触发时机:窗口完全销毁后
-
作用:执行窗口销毁后的清理操作
5. onWindowStageRestore(windowStage: WindowStage)
-
触发时机:窗口需要恢复时(如从后台返回)
-
参数说明:
参数 类型 说明 windowStage window.WindowStage 重新创建的窗口对象
6. onDestroy()
-
触发时机:Ability销毁前
-
作用:释放所有全局资源
7. onForeground()
-
触发时机:Ability进入前台
-
作用:恢复UI动画/定时器等可见操作
8. onBackground()
-
触发时机:Ability进入后台
-
作用:暂停非必要操作以节省资源
9. onNewWant(want: Want, launchParam: LaunchParam)
-
触发时机:已存在的Ability被重新启动
-
参数说明:
参数 类型 说明 want Want 新的启动意图参数 launchParam LaunchParam 系统保留参数
10. onShare(wantParam: Record<string, Object>)
-
参数说明:
参数 类型 说明 wantParam Object 包含分享数据的键值对(如uri、type等)
11. onContinue(wantParam: Record<string, Object>)
onContinue(wantParam: Record<string, Object>): AbilityConstant.OnContinueResult
-
参数说明:
参数 类型 说明 wantParam Object 跨设备迁移时的数据载体 -
返回值:
值 说明 AGREE(0) 同意迁移 CANCEL(1) 取消迁移
12. onDump(params: Array<
String>
)
onDump(params: string[]): string[]
-
参数说明:
参数 类型 说明 params string[] 诊断命令参数(通过 hdc shell
传入)
13. onSaveState(reason: StateType, wantParam: Record<string, Object>)
onSaveState(reason: AbilityConstant.StateType, wantParam: Record<string, Object>): AbilityConstant.OnSaveResult
-
参数说明:
参数 类型 说明 reason StateType 触发原因(MIGRATION=0, PAGE_RECOVER=1) wantParam Object 状态数据存储容器
14. onPrepareToTerminate()
onPrepareToTerminate(): boolean
-
返回值:
值 说明 true 允许系统终止 false 拒绝终止请求
15. onBackPressed()
onBackPressed(): boolean
-
返回值:
值 说明 true 已处理返回事件 false 由系统默认处理
关键数据类型说明
Want 对象结构示例:
{
deviceId: "", // 目标设备ID,空时表示本设备
bundleName: "", // 目标应用包名
abilityName: "", // 目标Ability名称
parameters: { // 自定义参数
key1: "value1",
key2: 123
}
}
WindowStage 核心方法:
方法 | 说明 |
---|---|
loadContent(path: string) | 加载UI页面(如pages/Index ) |
getMainWindow() | 获取窗口对象用于设置属性 |