您的位置:首页 > 移动开发 > Android开发

动态添加fragment,改变相对应所属activity的生命周期顺序

2016-11-11 15:02 411 查看
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自己的生命周期是永远不会变的。

欢迎大家指正!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐