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
    评论
生命周期是指一个 Android Fragment 在其创建、活动状态和销毁过程中所经历的一系列事件和方法调用。 1. Fragment生命周期方法有以下几个: - onAttach():当 FragmentActivity 关联时调用。 - onCreate():在 Fragment 创建时调用。 - onCreateView():在创建 Fragment 的视图时调用。 - onViewCreated():在 Fragment 的视图已经创建后调用。 - onActivityCreated():在与 Fragment 相关联的 Activity 的 onCreate() 方法已经完成后调用。 - onStart():在 Fragment 可见时调用。 - onResume():在 Fragment 可交互(获取焦点)并可见时调用。 - onPause():当 Fragment 失去焦点但仍可见时调用。 - onStop():当 Fragment 不再可见时调用。 - onDestroyView():在 Fragment 的视图被销毁时调用。 - onDestroy():在 Fragment 销毁时调用。 - onDetach():当 FragmentActivity 解除关联时调用。 2. Fragment生命周期流程如下: - onAttach() -> onCreate() -> onCreateView() -> onViewCreated() -> onActivityCreated() - -> onStart() -> onResume() - -> onPause() -> onStop() -> onDestroyView() -> onDestroy() -> onDetach() 3. 在生命周期方法中,可以执行一些常见的操作: - onCreate():初始化一些数据或资源。 - onCreateView():创建并返回 Fragment 的布局视图。 - onViewCreated():对布局视图进行初始化操作。 - onStart():执行一些开始的任务或动画。 - onResume():注册监听器、开始耗时任务等。 - onPause():取消注册监听器、暂停耗时任务等。 - onStop():保存数据或状态等。 - onDestroyView():释放视图相关的资源。 - onDestroy():释放其他资源。 - onDetach():清理与 Activity 相关的引用。 这些生命周期方法与 Fragment 的状态转换和可见性变化相关,通过重写这些方法,可以在合适的时机执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值