UIAbility的启动模式是指在启动UIAbility实例时所采用的不同呈现状态和行为方式。HarmonyOS为UIAbility提供了多种启动模式,以满足不同业务场景的需求。这些启动模式包括:
Singleton(单实例模式) :这是默认情况下的启动模式。当应用进程中该类型的UIAbility实例已经存在时,系统会复用该实例,而不是创建新的实例。这意味着每次调用startAbility()方法时,如果相同类型的UIAbility实例已经存在,则不会进入onCreate()和onWindowStageCreate()生命周期回调,而只会进入onNewWant()回调。这种模式下,UIAbility在任务列表里只会有一个历史任务。
Multiton(多实例模式) :在这种模式下,可以多次创建UIAbility实例。但是,每次创建新的实例之前,之前的实例都会被销毁。因此,在任务列表里也只能看到一个历史任务。每次创建新的实例时,都会重新走一遍UIAbility的生命周期方法。
Standard(标准实例模式) :这也是一种多实例模式。与Multiton不同的是,创建新的实例时不会销毁之前的实例,所以在任务列表里可以看到多个实例。这意味着每次点击都会创建新的实例,并且每个实例都有自己的生命周期。
Specified(指定实例模式) :这种启动模式需要指定一个ID。在创建UIAbility时,系统会先判断任务列表里是否存在指定ID的UIAbility实例。如果存在,则不会创建新的实例;如果不存在,则会创建新的实例。
选择合适的启动模式对于优化应用性能和用户体验非常重要。例如,对于需要频繁切换的页面或功能,使用Singleton模式可以避免不必要的实例创建和销毁,从而提高应用的响应速度和性能。而对于需要独立存在的页面或功能,则可以使用Standard或Specified模式来创建多个独立的实例。