Android 探究碎片(四)体验碎片的生命周期
完整项目代码
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():当碎片与活动解除关联关系的时候调用。
没有添加 transaction.addToBackStack(null); 时:
点击LeftFragment中的按钮
添加 transaction.addToBackStack(null); 时:
点击LeftFragment中的按钮时,用AnotherRightFragment替换RightFragment
点击Back键,RightFragment就会重新回到屏幕中
再次点击Back键