Android开发之Activity的生命周期
Android开发之Activity的生命周期
关于Activity的生命周期主要是看6个方法的执行过程
我画了个草图
这个是网上找的更为详细的周期图片
我们现在来讲解一下,当用户点击一个app后,首个activity的oncreat()方法被调用,
标志着该Activity的生命周期的开始,当这个activity的页面充满整个手机屏幕的时 候,onstart()方法被调用,此时此activity的可视生命周期开始,而此时这个页面也处于
最前方,也称之为前台,此时它的onResume方法被调用,页面获取焦点,这就意味着它上面的button组件是可以被用户点击的,此时该activity的前台生命周期开始。
当另一个activity覆盖此activity时onPause()就会被调用,界面失去焦点,控件不能得到点击事件,此时前台生命周期结束,此时又分为两种情况,
假设刚开始的activity为activity01
1、:activity02完全覆盖了activity01,activity不可见,如图:
此时activity02 的onCreate(),onStart(),onResume()方法逐一被调用,
activity01的onPause(),onStop()依次被调用,activity01前台生命周期,可视生命周期结束依次结束。
但,此时的activity01并没有被销毁,而是静待时机,而后他会有两种命运
①:内存空间不足时 ---- 它会被杀掉,进入到oncreat方法中等待再次被调用
②:内存足够,又一次被调用,先启动onRestart()方法,进入启动,然后调用
onStart()方法,开启新的旅程。
2、:后启动的activity如activity03以对话框的形式出现,并没有完全覆盖activity01
,它仍可视,如图:
此时,activity03依次调用oncreat(),onstart(),onResume()方法,开启activity03的生命周期,直接进入前台生命周期、可视生命周期
此时对于activity01,调用onPause(),界面失去焦点,控件不能得到点击事件,前台生命周期结束,但是因为依然可见,onStop()方法并没有被调用,activity01依然处于可视生命周期.
最后当用户退出app时,所有activity的onDestroy()方法被调用,activity生命周期结束
谢谢您的阅览,学习愉快~