HarmonyOS 鸿蒙Next中UIAbility组件启动模式

HarmonyOS 鸿蒙Next中UIAbility组件启动模式

关于UIAbility组件启动模式问题,启动singleton(单实例模式)和multiton(多实例模式),我通过代码启动AUIAbility 和 BUIAbility。不管是采用单例模式还是 多实例模式,整个应用推到后台,会在手机上看到两个UIAbility 。

问题:

  1. 看到两个UIAbility 是否正常。

  2. 对应金融应用(兴业银行)是否更推荐使用一个UIAbility 方案

3 回复
  1. 单实例模式指的是反复创建同一个ability,而不是针对于应用的概念

  2. 若采用多ability会有多任务视图,对用户感官来讲会觉得是多个应用,请结合该体验判断

多页面开发可参考Navigation使用:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5

更多关于HarmonyOS 鸿蒙Next中UIAbility组件启动模式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,UIAbility组件的启动模式包括standardsingleInstancesingleTasksingleTopstandard模式每次启动都会创建新的实例;singleInstance模式全局唯一,系统内只存在一个实例;singleTask模式在任务栈中唯一,若已存在则复用;singleTop模式在栈顶唯一,若已在栈顶则复用。这些模式通过launchMode属性在配置文件中定义。

针对您提出的HarmonyOS Next中UIAbility组件启动模式问题,我的专业回答如下:

  1. 关于看到两个UIAbility是否正常: 在HarmonyOS中,即使设置为singleton模式,每个UIAbility都会在任务管理器中显示独立卡片,这是系统设计行为。singleton模式仅保证同一时刻内存中只存在一个该Ability实例,而多实例模式(multiton)允许同时存在多个实例。因此看到两个UIAbility卡片是正常现象。

  2. 金融应用推荐方案: 对于银行类应用,推荐采用单UIAbility架构,理由包括:

  • 更符合金融应用的安全管理需求
  • 避免多实例导致的状态同步问题
  • 简化任务栈管理
  • 符合最小权限原则

您可以通过在config.json中配置"launchType":"singleton"来确保单实例行为,同时使用Page Ability来管理不同页面,而非创建多个UIAbility。这种设计既能满足业务需求,又能保持系统的简洁性和安全性。

回到顶部