Activity是与用户交互的第一接口,它提供的是一个用户完成指令的窗口。当我们创建Activity之后,通过调用setContentView(View)方法来给该activity指定一个显示的界面,并且以此为基础提供给用户交互的接口。系统采用Activity栈的方式来管理Activiity。
1.Activity的形态
Activity拥有多种形态,它可以在多种形态中进行切换,以此来控制自己的生命周期。
Active/Running
这时候,Activity处于Activity栈的最顶层,是可见,并且与用户进行交互。Paused
当Activity失去焦点,被一个新的非全屏的Activity或者是一个透明的Activity放置在栈顶时,Activity就转化成Paused形态。但它只是失去了与用户交互的能力,所有的组昂太爱信息,成员变量都还保持着,只有在系统内存极低的情况下,才会被系统回收掉。Stoped
如果一个Activity被另一个Activity完全覆盖,那么Activity就会进入Stoped形态,此时它不在可见,但是依然保持了所有的状态信息和成员变量。Killed
当Activity被锡系统回收掉或者是Activity从来没有创建过,Activity就处于Kiled形态。
2.生命周期
下图为经典的Activity生命周期图:
在此图中的多个Activity生命周期中,只有三个状态是稳定的,而其他状态都是过度状态:
Resumed
这个状态就是前面说的Active/Running形态,此时Activity处于Activity栈顶,处理用户的交互。Paused
当Activity的一部分被遮挡的时候进入这个状态,这个状态下的Activity不会接受用户输入。Stopped
当Activity完全被覆盖时进入这个状态,此时Activity不可见,仅在后台运行。
2.1Activity启动与销毁过程
在系统调用了onCreate()之后,就会马上调用onStart(),然后继续调用onResume()以进入Resumed()状态,最后鹿就会停留在Resume