Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 3.22 KB

请介绍 UIAbility 的启动模式.md

File metadata and controls

28 lines (22 loc) · 3.22 KB

请介绍 UIAbility 的启动模式

UIAbility 的启动模式是指在启动 UIAbility 实例时所采用的不同呈现状态和行为方式。HarmonyOS 为 UIAbility 提供了多种启动模式,以满足不同业务场景的需求。这些启动模式包括:

1. Singleton(单实例模式)

  • 说明:Singleton 模式确保任何时刻针对同一种 UIAbility 在系统中仅存在一个实例。当尝试再次启动一个已经存在的 UIAbility 时,系统不会创建新实例,而是直接将现有实例推到前台,并调用其 onNewWant() 方法来处理新的启动意图。这有助于维护数据的统一性和减少资源消耗。
  • 场景:
    • 设置页面:用户无论从哪个入口进入设置,看到的都应该是同一个设置实例,保证设置项的状态一致性。
    • 购物车页面:用户在浏览商品时多次打开购物车,应始终显示相同的购物车内容,避免因多次实例化造成购物车数据混乱。

2. Multiton(多实例模式)

  • 说明:虽然名称中有"多实例",但 Multiton 模式实际上每次启动都会销毁旧实例并创建新实例。这种模式并不常见于 UIAbility 设计中,它可能导致用户体验的中断,通常在需要确保每次启动都是全新上下文时使用。
  • 场景:
    • 特殊游戏关卡:假设每个游戏关卡需要完全独立的环境,玩家重复挑战某一关时,使用 Multiton 模式确保每次都是从头开始,没有上一次游戏的残留影响。

3. Standard(标准实例模式)

  • 说明:这是最常用的启动模式,每次启动 UIAbility 时都会创建一个新的实例,即使该 UIAbility 已经存在。每个实例都有独立的生命周期,适用于大多数需要保持独立状态或数据的场景。
  • 场景:
    • 新闻阅读应用的文章详情页:用户点击不同的新闻标题时,每次都应看到一个全新的文章详情页面,不保留前一篇文章的滚动位置或评论状态。
    • 相机应用:每次打开相机都希望是一个新的拍照或录像会话,不继承前一次的设置或预览画面。

4. Specified(指定实例模式)

  • 说明:通过指定一个标识符(ID),系统会查找是否有匹配此 ID 的 UIAbility 实例存在。若存在,则复用该实例;若不存在,则创建新实例。这允许开发者控制特定 UIAbility 的复用,适用于需要维持特定任务或状态的场景。
  • 场景:
    • 编辑文档应用:用户编辑文档时,如果因故离开,再次打开应用可以通过指定 ID 找回上次编辑的文档实例,继续之前的工作,保证编辑内容的连续性。
    • 复杂表单填写:用户在填写长表单时临时退出,再次进入时直接回到未完成的表单页面,避免用户重新填写,提高用户体验。

选择合适的启动模式对于优化应用性能和用户体验非常重要。例如,对于需要频繁切换的页面或功能,使用 Singleton 模式可以避免不必要的实例创建和销毁,从而提高应用的响应速度和性能。而对于需要独立存在的页面或功能,则可以使用 Standard 或 Specified 模式来创建多个独立的实例。