HarmonyOS Arkts UIAbility组件有四种启动模式:
- Standard Mode(标准模式):这是默认的启动模式。每次启动一个新的UIAbility时,都会创建一个新的实例。
- SingleTop Mode(单顶模式):如果新的UIAbility已经在栈顶,则不会创建新的实例,而是复用已有的实例。
- SingleTask Mode(单任务模式):在这个模式下,系统会确保在整个系统中只有一个该UIAbility的实例存在。如果新的UIAbility已经存在,那么系统会将该实例之上的所有UIAbility都清除,然后使该实例成为栈顶。
- SingleInstance Mode(单实例模式):在这个模式下,系统会确保在整个系统中只有一个该UIAbility的实例存在。如果新的UIAbility已经存在,那么系统会将整个栈都清除,只保留该实例。
UIAbility启动模式和Android Activity的启动模式的区别:
- 架构差异:HarmonyOS和Android是两个不同的操作系统,它们的架构和组件模型有所不同。HarmonyOS的UIAbility是ArkUI框架的一部分,而Android的Activity是Android框架的一部分。
- 生命周期管理:虽然两者都涉及到生命周期管理,但具体的生命周期方法和回调可能会有所不同。
- 启动模式实现细节:虽然启动模式的概念在两者中都存在,但具体的实现细节和行为可能有所不同。
应用场景:
- Standard Mode:适用于大多数常见的场景,每次启动一个新的UIAbility都会创建一个新的实例。
- SingleTop Mode:适用于当你不希望重复创建已经在栈顶的UIAbility实例的场景。
- SingleTask Mode:适用于你想要确保整个系统中只有一个UIAbility实例存在的场景,例如某些单例任务或全局设置。
- SingleInstance Mode:适用于你想要确保整个系统中只有一个特定UIAbility实例存在,并且不希望其他UIAbility干扰该实例的场景。
请注意,具体的使用场景可能因应用程序的需求和设计而异。
有三种启动模式:
1、 singleton启动模式
singleton启动模式为单实例模式,也是默认情况下的启动模式。
每次调用startAbility()方法时,如果应用进程中该类型的UIAbility实例已经存在,则复用系统中的UIAbility实例。系统中只存在唯一一个该UIAbility实例,即在最近任务列表中只存在一个该类型的UIAbility实例。
2、 multiton启动模式
multiton启动模式为多实例模式,每次调用startAbility()方法时,都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为multiton(多实例模式)。
3、 specified启动模式
specified启动模式为指定实例模式,针对一些特殊场景使用(例如文档应用中每次新建文档希望都能新建一个文档实例,重复打开一个已保存的文档希望打开的都是同一个文档实例)。
Android Activity是页面维度,Ability是应用维度