Fragment生命周期与宿主Activity生命周期

当启动activity是,同时启动activity里面的fragment,各生命周期的起调流程

11-22 16:51:22.051 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onCreate===11111
11-22 16:51:22.070 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStart===33333
11-22 16:51:22.073 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onResume===22222
11-22 16:51:22.093 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onAttach===1111
    ...Fragment====onCreate===22222
11-22 16:51:22.102 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onCreateView===333333
    ...Fragment====onActivityCreated===4444444
    ...Fragment====onStart===55555
    ...Fragment====onResume===666666

说明:

          只有真正的掌握 生命周期 才能更好的运用frgment .
       1.onAttach() 
          作用:fragment已经关联到activity,这个时候 activity已经传进来了, 获得activity的传递的值 就可以进行 与activity的通信里, 当然也可以使用getActivity(),前提是这个fragment已经和宿主的activity关联,并且没有脱离,有且只有调用一次。
         2.onCreate()
        系统创建fragment的时候回调他,在他里面实例化一些变量 
        这些个变量主要是:当你 暂停 停止的时候 你想保持的数据 
        他只调用一次。
        3.onCreateView()

          第一次使用的时候 fragment会在这上面画一个layout出来, 为了可以画控件 要返回一个 布局的view,也可以返回null j 就什么都没有显示。 

           当系统用到fragment的时候 fragment就要返回他的view,越快越好 ,所以尽量在这里不要做耗时操作,比如从数据库加载大量数据 
        4onActivityCreated()

             当Activity中的onCreate方法执行完后调用。

     
从这句官方的话可以看出:当执行onActivityCreated()的时候 activity的onCreate才刚完成。
所以在onActivityCreated()调用之前 activity的onCreate可能还没有完成,
所以不能再onCreateView()中进行 与activity有交互的UI操作,UI交互操作可以在onActivityCreated()里面进行。
所以呢,这个方法主要是初始化那些你需要你的父Activity或者Fragment的UI已经被完
整初始化才能初始化的元素。

       5.onStart()

       和activity一致,启动Fragement 启动时回调,,此时Fragement可见。
       6.onResume()

        和activity一致 在activity中运行是可见的。激活, Fragement 进入前台, 可获取焦点时激活。

       7.onPause()

        和activity一致 其他的activity获得焦点,这个仍然可见第一次调用的时候,指的是 用户 离开这个fragment(并不是被销毁)
通常用于 用户的提交(可能用户离开后不会回来了)
        8.onStop()

       和activity一致, fragment不可见的, 可能情况:activity被stopped了或者 fragment被移除但被,加入到回退栈中,一个stopped的fragment仍然是活着的如果长时间不用也会被移除。

       9.   onDestroyView() 

      Fragment中的布局被移除时调用。表示fragemnt销毁相关联的UI布局, 清除所有跟视图相关的资源。

然后这个知识移除视图  并没有销毁而且还没有脱离activity

       10.onDestroy()

       销毁fragment对象, 跟activity类似了。
      11.onDetach()

       Fragment和Activity解除关联的时候调用。 脱离activity。
 

 

当退出当前fragment时,同时退出当前宿主activity时,各声明周期起调流程

 

11-22 16:52:35.410 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onPause===777777
11-22 16:52:35.411 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onPause===4444444
11-22 16:52:35.768 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStop===888888
11-22 16:52:35.768 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStop===555555
11-22 16:52:35.769 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onDestroy===9999999
    ...Fragment====onDetach===000000
11-22 16:52:35.769 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onDestroy===666666

当前fragment从后台重新回到前台可见时,fragment与宿主activity各生命周期流程

11-22 16:55:39.499 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStart===55555
11-22 16:55:39.499 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStart===33333
11-22 16:55:39.501 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onResume===22222
11-22 16:55:39.501 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onResume===666666

当前fragment从前台可见到后台不可见时,fragment与宿主activity生命周期流程

11-22 16:59:12.944 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onPause===777777
11-22 16:59:12.945 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onPause===4444444
11-22 16:59:13.322 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStop===888888
11-22 16:59:13.323 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStop===555555

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值