Stage 模型入门:Ability 与生命周期

在鸿蒙里写应用,绕不开一个概念:模型(Model)。当前主推的 Stage 模型,定义了应用如何组织页面、如何响应系统事件。理解它,就理解了鸿蒙应用的“骨架”。

Stage 模型是什么

Stage 模型是鸿蒙应用的标准开发模型,把应用拆分为一组 Ability:UIAbility 负责界面,ExtensionAbility 负责后台任务和扩展能力。一个应用可以有多个 UIAbility,对应多个“入口”。

和旧版 FA 模型相比,Stage 模型在解耦、安全、多设备适配上都更强,也是现在官方推荐的学习方向。

Stage 模型入门:Ability 与生命周期开发示例图

UIAbility 与生命周期

每个 UIAbility 有明确的生命周期:onCreate(创建)、onWindowStageCreate(窗口就绪)、onForeground/onBackground(前后台切换)、onDestroy(销毁)。

理解生命周期的意义在于:在正确的时机做正确的事,比如在 onBackground 里保存数据、在 onDestroy 里释放资源,避免内存泄漏。

页面与 Ability 的关系

UIAbility 内部通过 WindowStage 管理页面:loadContent 加载首页,router 或 Navigation 负责页面跳转。一个 UIAbility 可以包含多个页面,页面栈由路由管理。

简单理解:Ability 是“应用的窗口”,页面是窗口里的一屏内容。

Stage 模型入门:Ability 与生命周期架构示意图

ExtensionAbility:后台的“分身”

需要后台任务(比如音乐播放、数据同步、卡片刷新),用 ExtensionAbility:它没有界面,只在后台运行,适合做周期性任务和系统能力扩展。

服务卡片(元服务卡片)也是一种 ExtensionAbility,后面讲元服务开发时会详细展开。

学习路径建议

Stage 模型不用一次背完:先掌握 UIAbility 生命周期和页面加载,再逐步了解 ExtensionAbility 和模块化。写几个小应用后回头看,概念会自然串起来。

模型是应用的“宪法”,越早建立正确的认知,后面写复杂应用越省力。

发表评论