UiAbility
郭杰 ... 2024-7-28 大约 2 分钟
# UiAbility
第1列
第2列
# UIAbility组件启动模式
# singleton启动模式
singleton启动模式为单实例模式,也是默认情况下的启动模式。
每次调用startAbility() (opens new window)方法时,如果应用进程中该类型的UIAbility实例已经存在,则复用系统中的UIAbility实例。系统中只存在唯一一个该UIAbility实例,即在最近任务列表中只存在一个该类型的UIAbility实例。
应用的UIAbility实例已创建,该UIAbility配置为单实例模式,再次调用startAbility() (opens new window)方法启动该UIAbility实例。由于启动的还是原来的UIAbility实例,并未重新创建一个新的UIAbility实例,此时只会进入该UIAbility的onNewWant() (opens new window)回调,不会进入其onCreate() (opens new window)和onWindowStageCreate() (opens new window)生命周期回调。
# multiton启动模式
multiton启动模式为多实例模式,每次调用startAbility() (opens new window)方法时,都会在应用进程中创建一个新的该类型UIAbility实例。即在最近任务列表中可以看到有多个该类型的UIAbility实例。这种情况下可以将UIAbility配置为multiton(多实例模式)。
# specified启动模式
specified启动模式为指定实例模式,针对一些特殊场景使用(例如文档应用中每次新建文档希望都能新建一个文档实例,重复打开一个已保存的文档希望打开的都是同一个文档实例)。