简述android activity的生命周期
前言
android的activity的生命周期总体来说非常简单,自然也是必要掌握的基础知识点。
首先,我们知道android中的activity是可以层叠的,启动新activity会覆盖在原activity上,点击back则销毁当前activity,下面的activity重新显现,这样的结构会容易让人联想到栈。是的,android通过一个叫做back stack的栈来管理activity,每当启动新activity,它都会入栈从而处于栈顶,而当按下back或者我们直接调用finish()方法销毁活动时,它就会出栈,系统总是会显示栈顶的activity。
activity的状态
讨论完activity之间的切换后,我们来介绍一下activity的四种可能的状态
- 运行状态
当activity处于栈顶时,便是运行状态,系统一般是不会回收该activity。 - 暂停状态
当activity不再处于栈顶,但是仍然可见时,activity进入了暂停状态。此时有可能是栈顶的activity并没有占满整个屏幕所致。系统也并不倾向于回收这种状态的activity。 - 停止状态
当activity不再处于栈顶,且不可见时,此时即是停止状态。系统会试着维护activity的状态和成员变量,但这并不完全可靠,当系统需要释放内存时,处于停止状态的activity就有可能被回收。后面会提到如何解决这个问题。 - 销毁状态
当acativity出栈后就变成了销毁状态,系统会