复习fragment的生命周期

来源:互联网 发布:2016全球汽车销量数据 编辑:程序博客网 时间:2024/06/06 19:31

我们都知道fragment的生命周期是依赖activity而存在的,上次复习了activity的生命周期这篇文章就来复习一下fragment 的生命周期。

fragment的生命周期和activity的生命周期类似,但是没有activity的onRestart()方法但是多出来了与activity之间建立联系和解除联系的几个方法,分别为onAttach,onCreatView,onActivityCreated,onDestoryView,onDetach

看一张描述fragment生命周期的图片



与activity生命周期的对比图



在对比图中可以很容易的分析出在fragment和activity创建关联以及创建fragment 的过程就是activity的OnCreate() 对应的阶段

onAttach--------->onActivityCreated 阶段

onAttach方法是在fragment第一次和activity创建关联关系的时候调用,这时候fragment和activity已经创建了关联关系可以获取activity携带的值,这个方法只调用一次

onCreate(@Nullable Bundle savedInstancestate) 方法是在onAttach方法之后onCreateView方法之前调用,用来创建一个fragment 做一些初始化操作

onCreateView(LayoutInflager inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState)方法要在onCreat 和onActivityCreated方法之间调用,作用是实例化fragment界面,这个方法是可以返回null的,如果在这里不返回一个null,在调用onDestoryView方法的时候就要释放视图view的资源,

inflater:创建fragment视图

container :这是fragment绑定的父控件视图,fragment 不能把图添加到自己的视图上但是可以在自己的视图view中使用这个视图的布局参数

savedInstanceState:前一个状态保存的数据这个视

onActivityCerated(Bundle savedinstanceState):调用这个方法的时候activity的onCreate方法已经执行完毕所有可以分析出当fragment调用onCreateView方法的时候activity的onCreate方法可能还没有执行完,所以不能在fragment的onCreateView方法中执行与activity有交互的ui操作,这些操作可以在onActivityCreated方法中进行

savedInstanceState:当fragment被重新创建的时候,之前的保存状态


onStart:和activity的生命周期中onStart方法的作用相同,fragment启动的时候调用,此时fragment可见


onResume:和activity的生命周期中onResume方法的作用相同,此时fragment与用户能进行交互时被执行,用户可以获得fragment的焦点,能够与用户交互


onPause:和activity的生命周期中onPause方法的作用相同,可见不可交互


onStop:和activity的生命周期中onStop方法的作用相同,不可见不可交互失去焦点


销毁fragment的过程中

onDestoryView:fragment的view被移除的时候调用,释放资源

onDestoty:同activity

onDetach:解除fragment与activity的关联关系


测试结果:

当我在启动一个嵌套了fragment的activity的时候,fragment的生命周期这样调用


锁屏时这样调用


打开锁屏这样调用


销毁activity时这样调用


其它情况可参考复习activity的文章




有关fragment你必须知道的事,请查阅一下微博

http://xueandroid.com/hierarchy?courseId=13&chapterId=124


原创粉丝点击