2016-11-29 78 views
2

对于Activity,standard,singletop,singletask和singleInstance,有四种启动模式。前三个比较容易理解和广泛使用。但到目前为止,我没有发现任何使用singleInstance的场景。Android:我应该何时使用singleInstance launchmode

Some of the real use case is an Activity for Launcher or the application that you are 100% sure there is only one Activity

有任何一个之前用过吗?

+0

参考http://stackoverflow.com/questions/3219726/android-singletask-or-singleinstance-launch-mode – sasikumar

+0

这可能有助于:[了解Android Activity的launchMode:standard,singleTop,singleTask和singleInstance](https:/ /inthecheesefactory.com/blog/understand-android-activity-launchmode/en) – Sar

回答

0

SingleInstance启动模式只能用于完全作为一项活动实施的应用程序。 一次只能有一个实例存在。系统不会启动任何其他活动到持有此类型的任务中。它始终是其任务的单一成员,从这里开始的活动将成为独立的任务。

+0

您不需要使用'singleInstance'启动模式来获取此行为。标准启动模式也应该给你这种行为。一般来说,使用'singleInstance'启动模式是一个好主意,除非你正在构建一个“主屏幕”的替代品。 –

-1

singleInstance launchmode将被用来当你不希望任何其他活动是task.Its在任务中只有活动的一部分。 由于此launchmode不允许。

+0

我真的不认为这回答了这个问题。对于我来说,查看它是否正确是太长和无聊的,但它不回答OP的问题,即“我应该什么时候使用'singleInstance'启动模式?”_ –

+0

已编辑的答案再次检查。 –

+0

好的,为什么你只需要在任务中只有一项活动?仍然不回答这个问题:) – IlyaEremin

0

从来没有理由使用singleInstance启动模式。

如果你正在建设一个“丝网之乡”更换或发射器类型的应用程序,你可以使用singleInstancesingleTask发射方式,以确保您的Activity始终是其任务的根源。这可以确保如果另一个应用程序启动您的Activity,那么Activity不会启动到调用应用程序的任务中,并且还确保您创建的Activity只有一个实例。

如果您正在编写一个“主屏幕”替换应用程序,您可以始终确保在启动其他活动时始终指定Intent.FLAG_ACTIVITY_NEW_TASK,以确保没有其他活动能够启动您的任务。在这种情况下,您可以使用启动模式singleTask。所以没有理由使用启动模式singleInstance。但当时Android的原始开发者可能并不清楚。

相关问题