学习 Android 恐怕打交道最多的就是 Activity,只要是我们看到的界面上的东西,几乎都是以 Activity 为载体的,它是一种包含用户界面的组件,用于和用户进行交互,Activity 是基础中的基础,但越是基础的东西,我们就有可能忽视它的重要性,这样我们的基础就会不扎实,所以即使是基础的东西,我们还是很有必要去花时间尽力好好分析一下的,下面我们对活动进行详细的介绍,说到活动恐怕活动的生命周期我们就不得不去研究,来看概览图
Activity 的生命周期全面分析:
一、正常情况下一个 Acitivity 会经历如下的生命周期:
Activity 经典生命周期图,来自 Google 官网:
1. 生命周期介绍
1)onCreate
这是 Activity 生命周期的第一个方法,这个方法相信我们已经看到了很多次,每个活动我们都重写了这个方法,它会在活动第一次被创建的时候调用,在这个方法中我们可以去做一些初始化的操作,比如调用 setContentView 去加载页面的布局,初始化 Activity 所需的数据等
2)onStart
这个方法在活动由不可见变为可见时调用,这时 Activity 已经可见了,但是还没有出现在前台,还不能和用户进行交互,我们可以理解为 Activity 已经有了,但我们还看不见
3)onResume
这里 Activity 已经可见了,可以和用户进行交互了,这时 Activity 处于栈顶,正在运行,这里要注意和 onStart 进行区分,可以理解为 onStart 和onResume 都表示 Activity 可见,但 onStart 的时候 Activity 还在后台,用户不可见,onResume 的时候在前台,用户可见
4)onPause
这个方法表示 Activity 正在停止,但还没有真正的停止,我们通常在这个方法中将一些消耗资源东西释放,可以存储一些关键的数据,但一定不能做耗时的操作,要不会意向下一个活动的使用
5)onStop
表示 Activity 即将停止,在 Activity 完全不可见得时候调用,可以做一些回收工作,也不能太耗时,这里要注意和 onPause 方法的区分,它和 onPause 方法的主要区别在于,如果新启动的方法是一个对话框式的活动,onPause 方法执行,onStop 方法不执行
6)onDestroy
表示 Activity 即将被销毁,对应于 onCreate 方法,这是 Acitivty 生命周期方法的最后一个回调方法,活动的状态将变为销毁状态
7)onRestart
这个方法在活动由停止状态变为运行状态时调用,这时候活动就是被重新启动了
上面这些都是一些理论的东西,下面我们就来真正的运行代码来看看 Activity 真正的执行情况