欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

重温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 生命周期图

重温Android和Fragment生命周期

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 生命周期图

    重温Android和Fragment生命周期

    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的可见或不可见状态,如果可见则进行懒加载操作