我在StackOverflow上没有找到任何回答我的问题的帖子。 我已经看过这个Android singletop singleinstance和singletask,但那个问题与他的项目场景有关。
singleTask和singleInstance之间有什么区别? 我已经阅读了文档,但无法理解...
我也阅读了这个帖子Android singleTask或singleInstance启动模式?但是我不明白。 抱歉
我在StackOverflow上没有找到任何回答我的问题的帖子。 我已经看过这个Android singletop singleinstance和singletask,但那个问题与他的项目场景有关。
singleTask和singleInstance之间有什么区别? 我已经阅读了文档,但无法理解...
我也阅读了这个帖子Android singleTask或singleInstance启动模式?但是我不明白。 抱歉
docs有什么不清楚的地方吗?
"singleTask"和"singleInstance"模式在一个方面上有所不同: "singleTask"活动允许其他活动成为其任务的一部分。它始终位于其任务的根部,但其他活动(必须是“standard”和“singleTop”活动)可以被启动到该任务中。另一方面,“singleInstance”活动不允许其他活动成为其任务的一部分。它是任务中唯一的活动。如果它启动另一个活动,则该活动将被分配给另一个任务-就像FLAG_ACTIVITY_NEW_TASK在意图中一样。
singleTask
情况下,它允许在同一任务栈中存在其他活动;而对于singleInstance
情况,它不允许在同一任务栈中存在其他活动,对吗? - MicksingleInstance
要为自己保留一个 Stack
? - MicksingleTask
时,它基本上是一对多的,任务对活动;当涉及到 singleInstance
时,它是一对一的,任务对活动。 - Tamim AttafisingleTask:- 一个新任务将总是被创建,并且一个新实例将被推送到该任务作为根。然而,如果任何活动实例存在于任何任务中,则系统通过onNewIntent()方法调用将意图路由到该活动实例。在此模式下,活动实例可以推送到同一任务中。这种模式对于充当入口点的活动非常有用。
singleInstance:- 与singleTask相同,除了不能将任何活动实例推送到singleInstance的同一任务中。因此,具有启动模式的活动总是在单个活动实例任务中。这是一种非常专业化的模式,应仅在完全作为一个活动实现的应用程序中使用。
SingleInstance类似于单例模式,其堆栈就像无法被扩展的final类。它在堆栈中始终是唯一的,并且总是存在。