singleTask和singleInstance之间的区别

时间:2014-04-12 17:07:18

标签: android android-activity

我没有在StackOverflow上找到任何回答我问题的线程。我已经看到了Android singletop singleinstance and singletask,但这个问题与他的项目情景有关。

singleTask和singleInstance之间有什么区别?我已阅读文档,但无法理解..

我也读过这个帖子Android singleTask or singleInstance launch mode?,但我无法理解。遗憾

3 个答案:

答案 0 :(得分:35)

docs有什么不清楚的地方?

  

" singleTask"和" singleInstance"模式也各不相同   其他只在一个方面:A" singleTask"活动允许其他   活动成为其任务的一部分。它永远是它的根源   任务,但其他活动(必然"标准"和" singleTop"   活动)可以启动到该任务中。 A" singleInstance"   另一方面,活动不允许其他活动成为其中的一部分   它的任务。它是该任务中唯一的活动。如果它开始另一个   活动,该活动被分配给不同的任务 - 就好像   FLAG_ACTIVITY_NEW_TASK是故意的。

答案 1 :(得分:17)

singleTask: - 将始终创建一个新任务,并将新实例作为根推送到任务。但是,如果任何任务中存在任何活动实例,系统会通过onNewIntent()方法调用将意图路由到该活动实例。在此模式下,活动实例可以推送到同一任务。此模式对于充当入口点的活动非常有用。

singleInstance: - 与singleTask相同,只是no活动实例可以推送到singleInstance的同一任务中。因此,启动模式下的活动始终位于单个活动实例任务中。这是一种非常专业的模式,只能在完全作为一个活动实现的应用程序中使用。

答案 2 :(得分:1)

SingleInstance就像一个单例,它的堆栈也像最终类一样无法扩展。 它总是单一的堆栈。并始终存在。