1、静态添加
通常下我们是在activity 的main.xml下创建布局文件,同时添加自己创建的fragment,以
形式插入页面。
例如:
<fragment
android:id="@+id/fragment_hello"
android:name="com.example.m01_fragment02.HelloFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
这个时候生命周期就是通常说的:
静态添加Fragment,对应activity具体的生命周期方法执行顺序:
Activity: onCreate 是指 执行完毕,及方法最后一行的代码,下同
Fragment: onAttach
Activity: onAttachFragment
Fragment:onCreate
Fragment:onCreateView (或者onCreateDialog)
Fragment: onActivityCreated
Activity: onStart
Fragment: onStart
Activity : onResume
Fragment: onResume
Fragment: onDestroy
Activity : onDestroy
Fragment: onDimiss
从上可以看出,
1、Fragment创建、激活状态 都是在 所属activity之后才可以的,比它慢一步。
2、所属Activity中所有的Fragment都销毁了,该activity才真的销毁。
3、Fragment 中有一个Fragment.getView() 方法,该方法必须等Fragment:onCreateView (或者onCreateDialog)执行完,才能返回视图,否侧返回null,可能导致空指针异常!!!
今天我们说的是动态添加fragment的生命周期。
2、动态添加fragment,使用fragmentmanager动态操作fragment(影响fragment生命周期)
动态添加之所以可以自定义生命周期,其实很简单,就是在activity不同的生命周期方法里面创建,从而导致生命周期和上图不同了。呵呵~
Fragment f=new Fragment();//创建
可以放在activity的 oncreate\onresum\onstart 等方法内,改变子Fragment对应activity的生命周期。
注意:这里说的是相对应所属activity的顺序,但是Fragment自己的生命周期是永远不会变的。
欢迎大家指正!!!!