我不明白为什么有两个术语。所有的活动都存在于一个任务中,所有的活动都存在于一个后台堆栈中,任务“使用”后台堆栈来组织活动,这似乎是多余的。是有人把奥卡姆剃刀扔进了下水道,还是这实际上是操作系统的不同部分必须分别处理的两个不同的实体?
我在谷歌和一些论坛上搜索过,没有找到满意的答案。我知道这看起来很无聊,但这对我来说是一个真正重要的问题;我有一个微小的信息消化道,在当前的东西完全代谢之前不能吸收任何新东西。我是代码新手,它伤害了我的大脑。请协助。
任务是用户在执行特定操作或工作流时与之交互的一组活动。
Backstack 是用户在特定任务中浏览过的一堆活动。当用户从一个 Activity 移动到另一个 Activity 时,前一个 Activity 被推入返回堆栈。当用户按下后退按钮时,前一个活动从堆栈中弹出并成为当前活动。
例如,你打开推特应用,安卓为它创建了一个任务。然后你会看到提要并点击一些推文。带有一些推文的活动打开。所以,在这个任务中有一个 backstac,里面有 2 个活动。
所以,回答你的问题,task和back stack是两个独立的概念,但是又密切相关。任务表示用户与一组活动交互的整体上下文,而返回堆栈表示用户在该上下文中的导航历史。
从概念上讲,任务 包含 Activities 的后栈,但是谈论当前不在屏幕上的任务的后栈会让人感到困惑。
你也可以说一个任务由一个返回栈和一个affinity组成。
Task是代码中实际使用的技术术语。您不需要精确定义返回堆栈,因此这些术语大多可以互换。