一、返回栈
Android的活动是可以层叠的,每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键会销毁最上面的活动,之前显示的一个活动就会显示出来。
Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也称作返回栈(Back Stack)。默认的情况下,每当启动一个新的活动,他会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶位置。系统总是会显示处于站定的活动给用户。如图显示:
二、活动状态
每个活动在其生命周期中最多可能会有四种状态。
1、运行状态
当一个活动处于返回栈的栈顶时,该活动就处于运行状态。
2、暂停状态
当一个活动不再处于栈顶时,但仍然可见时,该活动就处于暂停状态。
3、停止状态
当一个活动不再处于栈顶时,并且完全不可见时,该活动就处于停止状态。系统仍然会为该状态下的活动保存相应的状态和成员变量,但系统内存不足时就有可能被系统回收。
4、销毁状态
当一个活动从返回栈中被移除时就会处于销毁状态。系统最倾向于回收该状态下的活动。
三、活动的生命周期
1、onCreate()
活动在第一次被创建时调用
2、onStart()
活动由不可见变为可见时调用
3、onResume()
活动准备好与用户交时调用,此时活动一定处于栈顶,并处于运行状态。
4、onPause()
系统准备去启动或恢复另一个活动的时候调用。
5、onStop()
活动完全不可见的时候调用。如果启动的是对话框式的活动时,onPause()会执行,而onStop()并不会执行。
6、onDestroy()
活动在销毁之前调用。
7、onRestart()
活动由停止状态变为运行状态时之前调用。
活动的三种生存期:
①完整生存期:
onCreate()到onDestroy()之间所经历的
②可见生存期:
onStart()到onStop()之间所经历的
③前台生存期:
onResume()到onPause()之间所经历的