活动(Activity)的生命周期

1 相关概念

1.1 返回栈

    Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈叫做返回栈(Back Stack)。由于栈后进先出的特性,每当我们启动了一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置;每当我们销毁一个活动,处于栈顶的活动会出栈,系统总是会显示处于栈顶的活动给用户。

 

1.2 活动的四种状态

    活动在其生命周期中共有4种状态:

    (1)运行状态:当一个活动处于栈顶时,这个活动就处于运行状态。

    (2)暂停状态:当一个活动不再处于栈顶,但仍然可见时,这个活动就进入了暂停状态。

    (3)停止状态:当一个活动不再处于栈顶,并且完全不可见时,这个活动就进入了停止状态。这个时候系统只会保存相应的状态和成员变量。

    (4)销毁状态:当一个活动从返回栈中移除后,这个活动就变成了销毁状态。系统会更倾向于回收这种状态的活动,以保证手机的内存充足。

 

2 活动的生存期

    Activity类中定义了7个回调方法,覆盖了活动生命周期的每一个环节:

    (1)onCreate( ),每个活动中都要重写这个方法,在活动第一个被创建时调用。在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。

    (2)onStart( ),这个方法由不可见变为可见时调用。

    (3)onResume( ),这个方法在活动准备好与用户进行交互时调用。此时活动位于栈顶,并处于运行状态。

    (4)onPause( ),在活动准备启动或恢复另一个活动时调用。

    (5)onStop( ),在活动完全不可见时调用。

    (6)onDestroy( ),在活动被销毁之前调用,调用之后活动的状态变为销毁状态。

    (7)onRestart( ),在停止状态变为运行状态之前调用,也就是活动重新启动了。

活动生命的示意图如下:

活动(Activity)的生命周期