Android开发文档Tasks and Back Stack实际上很好地涵盖了这一点。相关摘录:
任务是一种凝聚力的单元,当用户开始新任务或通过HOME键进入主屏幕时,它可以移至“后台”。在后台,该任务中的所有活动都停止了,但是该任务的后堆栈保持不变-该任务只是在执行另一个任务时就失去了焦点,如图2所示。然后,任务可以返回到“前景”,以便用户可以从上次停站的地方接机。例如,假设当前任务(任务A)在其堆栈中具有三个活动-当前活动下有两个活动。用户按下HOME键,然后从应用程序启动器启动新应用程序。当出现主屏幕时,任务A进入后台。当新应用程序启动时,系统会使用自己的活动堆栈启动该应用程序的任务(任务B)。与该应用程序进行交互之后,用户再次返回Home并选择最初启动任务A的应用程序。现在,任务A成为前台-堆栈中的所有三个活动均保持不变,并且堆栈顶部的活动恢复。此时,用户还可以通过返回主页并选择启动该任务的应用程序图标(或通过触摸并按住HOME键显示最近的任务并选择一个)来切换回任务B。这是Android上多任务处理的示例。用户还可以通过返回主页并选择启动该任务的应用程序图标(或通过触摸并按住HOME键显示最近的任务并选择一个)来切换回任务B。这是Android上多任务处理的示例。用户还可以通过返回主页并选择启动该任务的应用程序图标(或通过触摸并按住HOME键显示最近的任务并选择一个)来切换回任务B。这是Android上多任务处理的示例。
注意:可以一次在后台执行多个任务。但是,如果用户同时运行许多后台任务,则系统可能会开始破坏后台活动以恢复内存,从而导致活动状态丢失。请参阅以下有关活动状态的部分。
简介:当您按下Home
并坐在内存中时,任务将移至后台,实际上并没有执行任何操作并保持其状态。这意味着(通常来说)您可以切换回该任务,它将在中断的地方继续执行。但是,如果需要回收内存,Android系统可以并且将杀死后台任务。什么时候以及是否发生这种情况完全取决于系统,这可能就是为什么您在恢复时看到不一致的行为的原因。
如果任务被系统破坏,则必须在再次启动它时重新创建它。因此,除非应用程序作者采取措施在销毁过程中保存应用程序的状态,否则它将丢失(并且在游戏中保存确切的状态是非常不切实际的)。
另一个很好(但也很冗长)的文档是介绍活动生命周期的文档(如果向下滚动会有一个不错的流程图)。