Android Fragment学习之一、Fragment生命周期

        前言:图突发现好久没用认真总结过东西了。从元旦以来去上海出差一个多月,过年之后就去了行方的项目现场,就开始了没有外网的苦逼日子。Fragment是经常使用的,就总结下吧。该文为Fragement学习的第一篇,主要讲述Fragment的生命周期。由于Fragment依附于Activity存在,其生命周期也依附于Activity。官方文档上指出:一个Fragment可以用于不同方式来实现各种效果。但是它的核心,表示在一个较大的Activity运行的特定操作的一块区域。 Fragment与它所在的Activity密切相关,并且是不能脱离Activity使用的。虽然Fragment定义了自己的生命周期,其周期是依赖于它所在的Activity,如果Activity停止时,它的内部没有Fragment可启动,当Activity销毁后,所有的Fragment将被销毁。那么在讲述Fragment生命周期前首先回顾下Activity的生命周期。

一、  Activity生命周期回顾

Activity生命周期说明
onCreate当Activity可视的时候调用
onStart当Activity可视的时候调用
onResume当用户可以和该Activity交互的时候调用(得到焦点)
onPause当Activity被覆盖的时候会调用(失去焦点)
onStop当Activity不可见的时候调用
onRestart当Activity从后台重新回到前台的时候回调
onDestroy当Activity被销毁的时候会调用

1. Activity启动


Activity启动调用顺序 onCreat() ==> onStart() ==> onResume()

2. 启动其他Activity或者按下Home按键

启动其他Activity或者按下Home按键调用顺序 onPause() ==> onStop()

3. Activity回到前台

Activity由后台回到前台显示调用顺序 onRestart() ==> onStart() ==> onResume()

4. 横竖屏切换

横竖屏切换 调用顺序 onPause() ==> onStop() ==> onDestory() ==> onCreat() ==> onStart() ==> onResume()

5. 退出Activity

Activity退出 调用顺序 onPause() ==> onStop() ==> onDestory()

二、  Fragment生命周期

Fragment生命周期说明
onAttach当Fragment第一次添加到Activity的时候调用
onCreate当Fragment初始创建的时候调用
onCreateView当Fragment实例化用户界面视图的时候调用
onActivityCreated当Fragment所在Activity已创建而且该视图实例化后调用
onStart当Fragment可视的时候调用
onResume当Fragment可以交互的时候调用
onPauseFragment被覆盖的时候会调用(失去焦点)
onStopFragment不可见的时候调用
onDestroyViewFragment内容被销毁的时候回调
onDestroyFragment被销毁的时候会调用
onDetachFragment在Activity移除的时候会调用

把Fragment的生命周期与Activity对应起来比较一下:

1. Fragment启动


Activity的启动即对应这Fragment的启动到可以与用户进行交互,调用顺序为: onAttach() ==> onCreat() ==> onCreatView() ==> onActivityCreated() ==> onStart() ==> onResume()

2. 按下Home按键


按下Home按键,可见伴随Activity宿主老大的周期:onPause() ==> onStop()

3. Fragment回到前台


在回到前台的时候也是伴随着Activity宿主老大的周期,只不过没有Activity周期的onRestart()方法,为 onStart() ==> onResume()

4. 横竖屏切换


在横竖屏切换的时候也是销毁掉然后重新创建,可见在销毁的时候多了几个回调方法。onPause() ==> onStop() ==> onDestoryView() ==> onDestory() ==> onDetach() ==> onAttach() ==> onCreat() ==> onCreatView() ==> onActivityCreated() ==> onStart() ==> onPause()

5. 退出Fragment


三、  Fragment与Activity生命周期对照


从Fragment以及Activity的生命周期对比来看,基本是存在对应关系的,在Activity的onCreat()及onDestory()中Fragment多了绑定解除绑定、创建View销毁View的回调方法。在与用户交互前的onCreat()、onStart()、onResume()周期中是Activity的周期在Fragment之前,在与用户交互之后的onPause()、onStop()、onDestory()周期中Activity的周期在Fragment之后,这个也比较好理解,在开门迎客的时候肯定是酒店先打开门客人才能进门,关门的时候是客人先走才能关门。

四、  总结

这一篇主要讲解了Fragment与Activity的生命周期关系,以便在后续使用Fragment的时候能够灵活运用这些周期的回调方法为我们服务。

五、  下载传送

Fragment生命周期示例程序



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值