Fragment 生命周期

Fragment生命周期图:

                   

(右图中英文解释:(1)用户点击回键或者碎片被移除/替换  (2)碎片被添加到返回栈,然后被移除/替换 (3)从返回栈中回到上一个碎片)

1.当一个fragment被创建的时候,它会经历以下状态.
onAttach()
onCreate()
onCreateView()
onActivityCreated()

2.当这个fragment对用户可见的时候,它会经历以下状态。
onStart()
onResume()

3.当这个fragment进入“后台模式”的时候,它会经历以下状态。
onPause()
onStop()

4.当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
onPause()
onStop()
onDestroyView()
onDestroy() // 本来漏掉类这个回调,感谢xiangxue336提出。
onDetach()

5.就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
onCreate()
onCreateView()
onActivityCreated()

6.Fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。

onAttached() —— 当fragment被加入到activity时调用(在这个方法中可 以获得所 在的activity)。
onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
onActivityCreated() —— 当activity的onCreated()方法返回后调用此方法
onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
onDetach() —— 当fragment和activity分离的时候,调用这个方法。

7.总体过程

onAttach() 关联Activity时调用

onCreate() 创建Fragment时调用,在这里必须初始化Fragment的基础组件

onCreateView() Fragment要绘制自己的界面时调用,这个方法必须返回Fragment的layout,也可以返回null(表示没有界面)

onActivityCreated() 当Activity对象完成自己的onCreate方法时调用

onStart() Fragment的UI可见时调用

onResume() Fragment的UI可交互时调用

onPause() Fragment 可见但不可交互时调用

onStop() Fragment 完全不可见时调用

onDestroyView() Fragment 移除视图时调用

onDestroy() 清理View资源时调用

onDetach() 失去Activity关联时调用

一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。

一些状态间的切换:

  • 切换到Fragment(第一次)

    • onAttach
    • onCreate
    • onCreateView
    • onActivityCreated
    • onStart
    • onResume
  • 屏幕熄灭

    • onPause
    • onSaveInstanceState
    • onStop
  • 屏幕解锁

    • onStart
    • onResume
  • 切换到其他Fragment

    • onPause
    • onStop
    • onDestroyView
  • 切换回本身

    • onCreateView
    • onActivityCreated
    • onStart
    • onResume
  • 回到桌面

    • onPause
    • onSaveInstanceState
    • onStop
  • 回到应用

    • onStart
    • onResume
  • 退出应用

    • onPause
    • onStop
    • onDestroyView
    • onDestroy
    • onDetach


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值