活动生命周期
- onCreate():活动一开始创建的时候,在这里面进行一些初始化操作
- onStart():活动由不可见变为可见的时候调用
- onResume():活动准备好和用户进行交互的时候调用,这个时候活动位于返回栈的栈顶,处于运行状态。
- onPause:这个时候系统准备去启动或者恢复另一个活动的时候调用,这个时候活动还是可见的
- onStop:活动由可见转为不可见的时候调用,它和onPause方法的区别就在于。如果启动的活动是一个对话框的时候,那么onPause会执行,而onStop不会执行
- onDestroy:活动由停止状态转为销毁状态调用
- onRestart:活动由停止状态转为运行状态的时候调用,也就是活动被重新启动了,这个时候不会再去调用onCreate() 只会调用onStart() onResume()
完整的生命周期
onCreate——onDestroy
可见生存期
onStart(加载可见资源)——onStop(释放内存)
前台生存期
onResume——onPause活动一直处在运行状态,可以和用户进行交互
注意:
这些方法都是回调方法,我们不能够去调用,只能重写方法里面的内容,什么时候调用是Activity来决定的,我们能够手动调用的就只有finish()方法,该方法用于关掉某个Activity。
活动的启动模式
- standard:标准模式,无脑模式,就是新建
- singleTop:栈顶复用模式,如果新建的activity位于返回栈的栈顶,那么就直接用这个实例,不用新建,如果没有位于栈顶,那么还是得重建。
- singleTask:栈内复用模式,如果新建的activity位于返回栈中,那么会将这个activity之上的活动都进行出栈。
- singleInstance:单例模式,直接创建一个新的返回栈,将新建的活动放在这个新的返回栈中。
生命周期解析:
- 当Activity首次被创建时,会调用onCreate()方法,接着当显示给用户时,调用onStart(),如果要让Activity位于前台的话就需要调用onResume()方法,此时activity位于栈顶。
- 当有另一个activity覆盖当前的activity时,这个时候调用onPause()方法,将前一个activity的数据保存起来。
- 此时,如果你想让前一个activity不会再显示的话,调用onStop()方法停止该activity,但是如果你想让它回到前台的话,重新获得焦点的话,可以调用onResume()方法。
- onStop()后,你可以调用onDestroy()方法来销毁该activity,也是该activity最后一次被调用了,可以通过finish()关闭activity。
- 当内存资源不足的时候,就可能杀死处于onPause()的activity所在的进程,但是这种极端的情况很少会发生。
Fragment生命周期
我们可以将fragment看做是一个小的activity,又称activity片段。使用fragment将屏幕划分成几块,进行分组,进行模块化管理,从而可以更加方便的在运行过程中动态的更新activity的用户界面。
fragment不能单独使用,它需要嵌套在activity中使用,即使拥有自己的声明周期,但是还是会受到宿主activity的生命周期的影响。
fragment的四种状态
运行状态
fragment可见,且它所关联的活动也处于运行状态,碎片也处于运行状态。
暂停状态
活动进入暂停状态(由于一个未占满屏幕的活动被添加到了栈顶),和它相关联的可见碎片就会进入到暂停状态。
停止状态
活动进入停止状态,与他相关联的碎片进入停止状态
销毁状态
碎片总是依附于活动存在的,活动销毁,碎片也销毁
生命周期
版权声明:本文为weixin_43529244原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。