我没有在StackOverflow上找到任何回答我问题的线程。我已经看到了Android singletop singleinstance and singletask,但这个问题与他的项目情景有关。
singleTask和singleInstance之间有什么区别?我已阅读文档,但无法理解..
我也读过这个帖子Android singleTask or singleInstance launch mode?,但我无法理解。遗憾
答案 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就像一个单例,它的堆栈也像最终类一样无法扩展。 它总是单一的堆栈。并始终存在。