android fragment生命周期方法,Android Fragment生命周期解析

序言

Fragment从Android v3.0版本开始引入的,随着界面布局的复杂化,处理起来也更加的复杂,引入Fragment可以把Activity拆分成多个部分。一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用。Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。

01d6949f2710

Fragment生命周期流程图

正文

1. 生命周期简介

Fragment必须是依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。Fragment状态与Activity类似,也存在如下4种状态:

运行:当前Fmgment位于前台,用户可见,可以获得焦点。

暂停:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点。

停止:该Fragment不可见,失去焦点。

销毁:该Fragment被完全删除,或该Fragment所在的Activity被结束。

2. 生命周期状态

Fragment的生命周期与Activity的生命周期十分相似,如下图所示:

01d6949f2710

Activity和Fragment生命周期对比流程图

从上图可以看出,Activity中的生命周期方法,Fragment中基本都有,但是Fragment比Activity多几个方法。各生命周期方法的含义如下:

onAttach() :

当Fragment与Activity发生关联时调用。

onCreate():

创建Fragment时被回调。

onCreateView():

每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View 组件。

onActivityCreated():

当 Fragment 所在的Activity被启动完成后回调该方法。

onStart():

启动 Fragment 时被回调,此时Fragment可见。

onResume():

恢复 Fragment 时被回调,获取焦点时回调。

onPause():

暂停 Fragment 时被回调,失去焦点时回调。

onStop():

停止 Fragment 时被回调,Fragment不可见时回调。

onDestroyView():

销毁与Fragment有关的视图,但未与Activity解除绑定。

onDestroy():

销毁 Fragment 时被回调。

onDetach():

与onAttach相对应,当Fragment与Activity关联被取消时调用。

3. 生命周期调用

1)创建Fragment

onAttach() —> onCreate() —> onCreateView() —> onActivityCreated() —> onStart() —> onResume()

2)按下Home键回到桌面 / 锁屏

onPause() —> onStop()

3)从桌面回到Fragment / 解锁

onStart() —> onResume()

4)切换到其他Fragment

onPause() —> onStop() —> onDestroyView()

5)切换回本身的Fragment

onCreateView() —> onActivityCreated() —> onStart() —> onResume()

6) 按下Back键退出

onPause() —> onStop() —> onDestroyView() —> onDestroy() —> onDetach()

参考

结语

至此,Fragment的生命周期介绍完毕。Fragment具有与Activity很相似的生命周期,依存与Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值