顾名思义,任务栈是由栈结构实现的,这个栈里保存了一些activity,以方便为用户进行导航。比如,当用户从 activity1 点击按钮进入到 activity2 以后,如果用户再按BACK键,就会从 activity2 回退到 activity1 中,这种基本的导航就是由任务栈实现的。
先创建的 activity 会先入栈,后创建的就会后入栈,也就是说,用户每次按BACK键回退时,都会回到他紧接着上次交互的那个 activity。下面这张官方网站给出的示例图非常清晰的解释了这一过程:
当用户按下HOME键回到桌面的时候,任务栈会在后台继续运行,不过栈中的activity都会处于stop状态。当用户再次运行这个任务栈所属的App时,任务栈就会被激活,任务栈中的所有activity也会处于resume状态。
后台可以同时保持好几个任务栈在运行,只要用户激活了某个任务栈所属的App,这个任务栈便会被激活并提供导航。
※注意:系统并不总是保持后台中的这些任务栈,必要的时候系统会杀掉一些任务栈来释放内存