下面,我们先看一张关于Activity活动生命周期的图表

由上图我们可知道以下7个 回调方法对Activity活动生命周期进行了完整的描述:

1.

当活动第一次创建的时候,会自动调用“onCreate()”方法,首次创建;
2.

当活动处于栈顶位置的时候,调用“onStart()”方法
3.

同时,当处于栈顶时,并且可以与用户进行交互时,也会调用"onResume()"方法(也就是继续)
4.

这时activity就处于运行状态(这时处于栈顶位置)
5. 接下来有个状态发生了:

又打开了另外一个活动
6. 当新的活动进栈,会将前一个活动覆盖,如下图:

每启动一个新的活动,将遮蔽前一个活动
7.

那么之前的活动首先将会进行"onPause()"这个状态(也就是暂停状态)
8. 接下来是否调用"onStop()"方法是否调用取决于下图所示状态

之前活动不可见(也就是新的活动完全遮盖前一个活动)
9.

这时将会自动调用"onStop()"方法,将其从可见状态变为不可见状态
10. 当然,会有一些比较特别的情况,比如打开的是一个对话框,不能覆盖全屏的情况下,之前栈顶的活动就不会调用"onStop()"方法,只会调用"onPause()",只是暂停,并没有完全停止,依然可见

11.

当按下返回按钮时,这个活动将会被注销、销毁
12.

活动被关闭
13.

当之前被停止的活动重新回到栈顶时(如上图标红),将会调用"onRestart()"方法进入"onResume()"方法,“onCreat()”方法在整个生命周期只会被调用一次
14.

如果是dialog格式,也就是不完全遮盖的,当它返回时,会重新进入到"onResume()"继续
15.

如果内存非常紧张的时候,这个进程将会被Kills,从而释放资源(红线标注);如果我们还需这个资源的话,将会重新进入“onCreate()”方法
---开发之路弥坚,亦要坚持和努力
