Activity 有四种启动模式,标准、单顶、单任务和单实例。前面三个比较容易理解,应用比较广泛。但是直到现在,我还没有发现任何使用 singleInstance 的场景。
以前有人用过吗?
Activity 有四种启动模式,标准、单顶、单任务和单实例。前面三个比较容易理解,应用比较广泛。但是直到现在,我还没有发现任何使用 singleInstance 的场景。
以前有人用过吗?
从来没有理由使用singleInstance
启动模式。
如果您正在构建“主屏幕”替换或启动器类型的应用程序,您将使用singleInstance
或singleTask
启动模式来确保您Activity
始终是其任务的根。这可以确保如果另一个应用程序启动您的Activity
,它Activity
不会启动到调用应用程序的任务中,并且它还确保只有一个您Activity
创建的实例。
Intent.FLAG_ACTIVITY_NEW_TASK
如果您正在编写“主屏幕”替换应用程序,则始终可以通过始终指定何时启动其他活动来确保没有其他活动启动到您自己的任务中。在这种情况下,您可以使用启动模式singleTask
。所以没有理由使用启动模式singleInstance
。但当时 Android 的原始开发者可能并不清楚。
SingleInstance 启动模式应仅用于完全作为一个活动实现的应用程序。一次只存在一个实例。系统不会向持有此类型的任务启动任何其他活动。它始终是其任务的单个成员,从这里开始的活动将打开为单独的任务。
当您不希望任何其他活动成为任务的一部分时,将使用单实例启动模式。它是任务中唯一的活动。由于此启动模式不允许这样做。