重温Android和Fragment生命周期
程序员文章站
2022-07-11 18:59:13
重温下Android和Fragment生命周期,理解生命周期方法的作用,什么时候调用,可以做一些什么操作。 1、Android生命周期 1.1 生命周期图 1.2 生命周期函数说明 onCreate :Activity正在创建,生命周期的第一个方法,需要setContentView加载layout。 ......
重温下android和fragment生命周期,理解生命周期方法的作用,什么时候调用,可以做一些什么操作。
1、android生命周期
1.1 生命周期图
1.2 生命周期函数说明
- oncreate:activity正在创建,生命周期的第一个方法,需要setcontentview加载layout。这里不建议耗时操作,只做layout和控件初始化。此方法传递一个 bundle 对象,可以获取上一个activity 的状态。
- onstart:activity正在启动,此时activity已处于可见状态,只是还没有在前台显示,因此无法与用户进行交互,这里也可以初始化控件,但官方推荐在oncreate进行。如果 activity 转入前台,则后接 onresume,如果 activity 转入隐藏状态,则后接 onstop。
- onresume:activity已在前台可见,可以跟用户进行交互,并且该activity处于堆栈的顶层,可在此初始化一些资源,后接onpause方法。
- onpause:跳转到其他activity时调用,此方法中可以做一些数据存储或者动画停止或者资源回收的操作,但不能太耗时,因为android中指定onpause在500ms內没有执行完毕的话就会强制关闭activity。如果activity返回前台,则后接onresume,如果activity转入对用户不可见状态,则后接onstop。
- onstop:表示activity即将停止或者完全被覆盖,此时activity不可见,仅在后台运行,也就是还在内存中,还没有被销毁,可以做一下非耗时操作。如果activity恢复与用户的交互,则后接onrestart,如果activity被销毁,则后接ondestroy
- onrestart:activity在这时可见,当用户按home键切换到桌面后又切回来或者从后一个activity切回前一个activity就会触发这个方法在,始终后接onstart。
-
ondestory:在activity被销毁前调用,activity结束(调用finish)或者系统内存不够需销毁activity时调用,可以根据isfinishing()方法区分这两种情形。可做回收工作和最终的资源释放。
2、fragment生命周期
2.1 生命周期图
2.2 生命周期函数说明
fragment被创建的时候,经历包含onattach、oncreate、oncreateview、onactivitycreated方法;fragment对用户可见的时候,经历包含onstart、onresume方法;fragment进入“后台模式”的时候,经历onpause、onstop方法;fragment被销毁了(或者持有它的activity被销毁了),经历包含onpause、onstop、ondestroyview、ondestroy、ondetach方法;并且可用oncreate、oncreateview、onactivitycreated方法bundle对象保存一个fragment的对象。 - onattach:当fragment与activity发生关联时调用
- oncreate:创建fragment时被回调,经历暂停或停止状态继而恢复后,想保留fragment的基本组件,则在此进行初始化。
- oncreateview:首次绘制页面时候调用,在此可以创建view,也可以返回null,这样不建议耗时操作。
- onactivitycreated:fragment绑定activity,在oncreate方法已经执行完成并返回,在该方法内可以进行与activity交互的ui操作,不能在此之前跟activity进行交互。
- onstart:启动 fragment 时被回调,此时fragment可见,只是还没有在前台显示,因此无法与用户进行交互
- onresume:fragment在前台可见,处于活动状态,用户可与之交互
- onpause:fragment处于暂停状态,但依然可见,用户不能与之交互
- onstop:停止fragment回调,fragment完全不可见
- ondestoryview:销毁与fragment有关的视图,但未与activity解除绑定
- ondestory:销毁 fragment 时被回调,通常按back键退出或者fragment被回收时调用此方法,此后接ondetach
- ondetach:与onattach相对应,当fragment与activity关联被取消时调用
setuservisiblehint:调用次方法可以设置fragment可见或者不可见。可以调用getuservisiblehint()获得fragment的可见或不可见状态,如果可见则进行懒加载操作
推荐阅读
-
Android中Fragment嵌套生命周期响应问题
-
Android基础之使用Fragment适应不同屏幕和分辨率(分享)
-
Android Fragment 的静态和动态使用
-
Android Activity生命周期和堆栈管理的详解
-
重温Android和Fragment生命周期
-
android开发实例(activity生命周期和启动模式、IPC机制)
-
Android Fragment实现列表和内容联动
-
Android开发艺术探索——1.Activity的生命周期和启动模式
-
Android Studio 安卓活动的生命周期和启动模式
-
Android RadioGroup和Fragment实现底部菜单结构的首页?