1、Fragment生命周期
Fragment是不能单独的显示在手机上的,它只能在Activity里面显示。当Activity加载的时候,第一次执行onCreate()方法。
用一句话概括Fragment的生命周期即:
Fragment首先需要创建对象(即实例化对象),然后要加载布局,接着开始运行。在Activity创建的时候,Fragment中的元素也跟着创建,当Activity被消毁时,Fragment的整个生命周期也就结束了。
下列图片列出的是Activity与Fragment相对应的生命周期方法:
2、Activity生命周期与Fragment生命周期的关联关系。
Activity生命周期的结束是在Activity中所有的Fragment结束生命周期之后才结束的。即所有的Fragment消毁之后,Acivity自己才消毁。
3、onCreate()与onCreateView()有什么区别?
主要区别在于,在onCreate()方法中是不可以更新UI界面的,因为此时布局还没有被创建,因此Fragment中的UI对象就获取不到,获取不到UI对象就无法更新界面。
4、Fragment生命周期概述
Fragment的生命周期大部分类似于Activity的生命周期。Fragment与Activity存在三种同样的生命周期:
(
1)
onResumed:表示在
Activity的运行中是可见的。
(
2)
onPaused:表示其他的
Activity变成了前景,即获得了焦点。
(
3)
stoped:表示不可见的,即当
Activity不可见的时候,
Fragment也是不可见的。可能出现的情况是,
Activity的状态是
stoped状态,第二个是
Fragment从
Activity上移除,并且将
Fragment添加到回退栈当中,那么这个
Fragment也是处于暂停状态的。但是有一点,停止状态的
Fragment仍然活着。所有状态的成员信息一直都会保持着。但是长时间处于不可见的话,有可能会被
Activity杀掉。
总的来说,Fragment的生命周期会直接被Activity的生命周期所影响。例如当
Activity中调用
onPause()方法,那么处于
Activity中的每一个
Fragment都会调用
onPause()方法。
注意:
(1)、
onCreate()方法仅仅只会调用一次。
(2)、更新
UI应该是在
onCreateView()方法中去更新。绝对不能在
onCreate()方法当中去更新,因为这个方法执行到里这的时候,
UI对象无法获取。
(3)、当
Activity的状态处于
onStart(),onResumed(),
onPause(),
onStoped()时,它里面所有的
Fragment与
Activity此时的状态都是一样的。
(4)、消毁时,
Fragment先消毁
View,然后再自己消毁,最后脱离
Activity
(5)、onAttach表示已经关联上Activity,如果需要传值,则可以在Fragment的onAttach()方法中进行传递。
(6)、 onActivityCreated():表示当Activity的onCreate()方法返回时调用。
(7)、onDestroyView():是表示Fragment的View已经被移除了。
(8)、 onDetach()是Fragment脱离Activity。
当Activity接收onCreate()状态时,这个Fragment在Activity当中来说就只会调用onActivityCreated()方法。