活动的生命周期
在学习活动的生命周期之前,首先要理解返回栈的概念。
返回栈
- 在Android中,是通过任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈。
- 在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶位置。而每当我们按下Back键或调用finish()方法去销毁一个活动时,,处于栈顶的活动就会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。
- 系统总是会显示处于栈顶的活动给用户
活动状态
1. 运行状态
活动处于返回栈的栈顶时,活动处于运行状态。
2. 暂停状态
活动不在处于栈顶位置,但仍然可见时,活动进入暂停状态。(如对话框)
3. 停止状态
活动不再处于栈顶位置,并且完全不可见时,活动进入停止状态。
4. 销毁状态
活动从返回栈中移除后就变成了销毁状态
活动的生存期
Activity类中定义了七个回调方法,覆盖了活动生命周期的每一个环节。
1. onCreate()
Acitivity首次创建时被调用。用于设置Acitivity的布局文件,绑定按钮监听器等一些普通静态操作。
2. onStart()
onCreate事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体前已经过去了一段时间,窗体已经执行了onStop事件,但是窗体和其所在进程并没有被销毁,用户再次重新查看窗体时会执行onRestart事件,之后会跳过onCreate事件,直接执行窗体的onStart事件。
3. onResume()
onStart事件之后执行。或者当前窗体被交换到后台后,在用户重新查看窗体时,窗体还没有被销毁,也没有执行过onStop事件(窗体还继续存在于Task中),则会跳过窗体的onCreate和onStart事件,直接执行onResume事件。
4. onPause()
窗体被交换到后台时执行。
5. onStop()
onPause事件之后执行。如果一段时间内用户还没有重新查看该窗体,则该窗体的onStop事件将会被执行;或者用户直接按了Back键,将该窗体从当前Task中移除,也会执行该窗体的onStop事件。
6. onDestroy()
onStop事件执行后,如果窗体和其所在的进程没有被系统销毁,此时用户又重新查看该窗体,则会执行窗体的onRestart事件,onRestart事件后会跳过窗体的onCreate事件直接执行onStart事件。
7. onRestart()
Activity被销毁的时候执行。在窗体的onStop事件之后,如果没有再次查看该窗体,Activity则会被销毁。
(此处引用http://blog.csdn.net/w709835509/article/details/7655240)