Android 探究碎片(四)体验碎片的生命周期

Android Activity 体验活动的生命周期

完整项目代码
https://github.com/Phil-tom/Android-The-First-Line-of-Code/tree/main/Chapter4/FragmentTest

碎片的状态和回调

  • 运行状态
    碎片可见,并且它所关联的活动正处于运行状态
  • 暂停状态
    当一个活动进入暂停状态,与它相关联的可见碎片就会进入暂停状态
  • 停止状态
    当一个活动进入停止状态时,与它相关联的碎片就会进入停止状态,或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但如果在事务提交之前调用addToBackStack()方法,这时随便也会进入停止状态
    进入停止状态的碎片对用户来说是完全不可见的
  • 销毁状态
    碎片总是依附于活动而存在,当活动被销毁时,与它相关联的碎片就会进入销毁状态。或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但在事务提交之前没有调用addToBackStack()方法,这时随便也会进入销毁状态。

  • onAttach() :当碎片和活动建立关联的时候调用。
  • onCreateView():为碎片创建视图(加载布局)时调用。
  • onActivityCreated():确保与碎片相关联的活动一定已经创建完毕的时候调用。
  • onDestoryView():当与碎片相关联的视图被移除的时候调用。
  • onDetch():当碎片与活动解除关联关系的时候调用。

Android 探究碎片(四)体验碎片的生命周期
没有添加 transaction.addToBackStack(null); 时:
Android 探究碎片(四)体验碎片的生命周期
点击LeftFragment中的按钮
Android 探究碎片(四)体验碎片的生命周期

添加 transaction.addToBackStack(null); 时:
Android 探究碎片(四)体验碎片的生命周期
点击LeftFragment中的按钮时,用AnotherRightFragment替换RightFragment
Android 探究碎片(四)体验碎片的生命周期
点击Back键,RightFragment就会重新回到屏幕中
Android 探究碎片(四)体验碎片的生命周期
再次点击Back键
Android 探究碎片(四)体验碎片的生命周期