3 回答
TA贡献1856条经验 获得超5个赞
从Android开发指南的Application Fundamentals页面:
默认情况下,应用程序中的所有活动都具有彼此的亲和力 - 也就是说,它们都优先属于同一任务。
“singleInstance”活动是其任务中唯一的活动。如果它启动另一个活动,则无论其启动模式如何,该活动都将启动到另一个任务 - 就像FLAG_ACTIVITY_NEW_TASK在意图中一样。在所有其他方面,“singleInstance”模式与“singleTask”相同。
如上所述,“singleTask”或“singleInstance”活动永远不会超过一个实例,因此该实例应该处理所有新意图。“singleInstance”活动始终位于堆栈的顶部(因为它是任务中唯一的活动),因此它始终处于处理意图的位置。但是,“singleTask”活动在堆栈中可能有也可能没有其他活动。如果是,则无法处理意图,并且意图被删除。(即使意图被删除,它的到来也会导致任务进入前台,它将保留在前台。)
由于具有任一启动模式的活动永远不会有多个实例,因此后退按钮将始终将您带到您的案例中的活动的现有实例。
一个重要的区别是“singleTask”不需要为选择某些内容时启动的新活动创建新任务。也不必每次都在后退按钮上删除新任务。
由于您的Activity堆栈完全属于一个用户“任务”,并且听起来您没有复杂的Intent结构,其中singleInstance可能有利于始终处理它们,我建议使用singleTask启动模式。
这是一篇很好的博客文章,了解更多信息,以及图片来源:Android活动和任务系列 - Android UI组件模型简介
- 3 回答
- 0 关注
- 884 浏览
添加回答
举报