活动(Activity)的生命周期
0.前言
熟悉Activity的生命周期,可以让开发者更加了解程序的运行过程,有利于写出更加连贯流畅的程序,而且相关于合理管理应用资源,提供更好的用户体验。
1.返回栈
理解“后进先出”,如下图所示。 一个个的活动(Activity)入栈,后来的层叠在先前创立的活动(Activity)之上,遵循“后进先出”的原则。点击Back键或做出后退的手势,即将栈顶,也就是最上面的活动(Activity)销毁,然后和栈顶下一个活动交互。
2.活动状态
活动(Activity)有4种状态,分别是运行(running)、暂停(paused)、停止(stop)以及销毁(destroyed)。
- 运行(running)
- 暂停(paused)
- 停止(stop)
- 销毁(destroyed)
3.活动的“动作”
Activity类中定义了7个回调函数,它们贯穿了一个活动的整个生存周期,下面一起来看看这7个函数。
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestroy()
- onRestart()
- 完整生存期
- 可见生存期
- 前台生存期
4.实践小程序
在主页面程序中加入onCreate、onStop等函数的重载,观察在跳到其他页面(两种情况,一种是主页面完全不可见,即完全被覆盖;另一种是跳出一个弹窗活动,主页面没有被完全覆盖)时,主页面程序所做的事情。
- 当主页面程序启动的时候,走的流程是onCreate->onStart->onResume,然后进入了运行状态,User与之互动。
- 当在主页面点击按钮,跳转到另一个能够完全覆盖主页面的活动时,主页面走的流程是onPause->onStop,从而进入了停止状态(stop)。再点击Back键,回到主页面,走的是onRestart->onStart->onResume,主页面重新进入运行状态(running)
- 当在主页面点击按钮,弹出一个不完全覆盖主页面的对话框时(如下图所示),主页面中调用了onPause,进入暂停状态(paused),点击对话框外面的区域回到主页面时,调用了onResume。
- 在主页面运行状态时,点击Back按钮,回到手机的主界面,程序走的是onPause->onStop->onDestroy,主页面就成了销毁状态(destroyed)。
参考: 《第一行代码》 Android官方教程
|