大家好,我是陈景序,今天我们来聊聊Android开发中Activity的生命周期,这个话题可是Android开发中的重中之重哦!
首先,Activity是由Activity stack管理的,每次启动一个新的Activity,它就会成为stack的top位置,成为当前运行的Activity。而之前的Activity并不会被销毁,只是退到了stack的下面。当需要调用这个Activity时,它就会回到stack的top位置。
Activity的四种基本状态
Activity有四个基本状态,分别是:
- active / running 状态:当Activity处于当前屏幕时;
- paused 状态:当Activity失去焦点但对用户依然可见时;
- stopped 状态:当Activity完全被另一个Activity覆盖时;
- 当Activity是paused或者stopped状态时,系统可以通过要求它结束或直接杀死它的进程来将它驱出内存。
Activity的生命周期
Activity的生命周期可以通过以下几个关键的生命周期循环来理解:
- 一个activity完整的生命周期:从第一次调用onCreate开始,直至调用onDestroy为止。
- 一个activity的可视生命周期:从onStart调用开始直到相应的onStop调用。
- 一个activity的前台生命周期:从onResume调用起,至相应的onPause调用为止。
这些生命周期方法都是可以重载的,以便在状态改变时进行合适的工作。
下面是一个Activity的生命周期图,可以帮助你更好地理解:

Activity的调用顺序
以下是一个Activity的调用顺序示例:
- 点击按钮去启动Activity1,就会看到onCreate -> onStart -> onResume的调用顺序。
- 点击back返回键后,会看到onPause -> onStop -> onDestory的调用顺序。
- 再次启动Activity1,和一般启动的顺序是一样的。
- 从Activity 1启动Activity 2,Activity 1会调用onPause,Activity 2会调用onCreate -> onStart -> onResume。
- 点击Home键回到桌面,Activity 2会调用onPause -> onStop。
- 回到原来的程序,Activity 2没有被销毁的情况下,会调用onRestart -> onStart -> onResume。
- 点击back返回键或Activity2.finish(),返回到Activity1,这里的情况是Activity1还没被销毁。
- 点击back返回键后,Activity1会调用onPause -> onStop -> onDestory。
保存Activity状态
保存Activity状态,是为了方便用户重新打开程序时,能够回到上次离开时的状态。这里涉及到的方法有onSaveInstanceState和onRestoreInstanceState。
要注意的是,onSaveInstanceState和onRestoreInstanceState并不是生命周期方法,它们并不是总会被调用。你应该只用它们来为Activity保存一些临时的状态,而不能用来保存持久性数据。
好了,今天的内容就到这里,希望对大家有所帮助。我是陈景序,关注「websoft网络软件专家」(www.phpwebsoft.com),了解更多技术干货!
