其实Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作为返回栈(Back Task)。栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish() 方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。系统总是会显示处于栈顶的活动给用户。
活动状态
每个活动在其生命周期中最多肯会有4中状态
01.运行状态
当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。系统最不愿意回收的就是处于运行状态的活动,因为这会带来非常差的同于体验。
02.暂停状态
当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入了暂停状态。你可能会觉
得既然活动已经不在栈顶了,还怎么会可见呢?这是因为并不是每一个活动都会占满整个
屏幕的,比如对话框形式的活动只会占用屏幕中间的部分区域,你很快就会在后面看到这
种活动。处于暂停状态的活动仍然是完全存活着的,系统也不愿意去回收这种活动(因为
它还是可见的,回收可见的东西都会在用户体验方面有不好的影响),只有在内存极低的
情况下,系统才会去考虑回收这种活动。