一个Android应用程序功能通常会被拆分为多个Activity,而各个Activity之间通过Intent进行连接,而Android系统,通过栈结构来保存整个APP的Activity,栈底的元素是整个任务栈的发起者。一个合理的任务调度栈不仅是性能的保证,更是提供性能的基础。
当一个APP启动时,如果当前环境中不存在该APP的任务栈,那么系统就会创建一个任务栈。此后,这个APP所启动的Activity都将在这个任务栈中被管理,这个栈也就被称为Task,即表示若干个Activity的集合,他们组合在一起形成一个Task。另外,需要特别注意的是,一个Task中的Activity可以来自不同的APP,同一个APP的Activity也可能不在一个Task中。
当一个Actitity启动了另一个Activity的时候,新启动的Activity就会至于任务栈的顶端,并处于活动状态,而启动它的Activity虽然功成身退,但依然保留在任务栈中,处于停止状态,当用户按下返回键或者调用finish()方法时,系统会移除顶部Activity,让后面的Activity恢复活动状态。