Activity
界面中的一部分,可理解为模块化的 Activity
Fragment
不能独立存在,必须嵌入到Activity
中Fragment
具有自己的生命周期,接收它自己的事件,并可以在Activity
进行时被添加或删除Fragment
的生命周期直接接收所在Activity
的影响。如:当Activity
暂停时,它拥有的所有Fragment
都暂停
生命周期
详解每个方法的调用场景
onAttach
方法
Fragment
和Activity
建立关联的时候调用(获得Activity
的传递的值)onCreateView
方法
为Fragment
创建视图(加载布局)时调用(给当前的fragment
绘制UI
布局,可以使用线程更新UI
)onActivityCreated
方法
当Activity
中的onCreate
方法执行完后调用(表示activity
执行onCreate
方法完成了的时候会调用此方法)onDestroyView
方法
Fragment
中的布局被移除时调用(表示fragment
销毁相关的UI
布局)onDetach
方法
Fragment
和Activity
解除关联时候调用(脱离activity
)
Fragment
生命周期解析
- 当一个
fragment
被创建的时候onAttach() onCreate() onCreateView() onActivityCreated()
- 当这个
fragment
对用户可见的时候,它会经历以下状态onStart() onResume()
- 当这个
fragment
进入“后台模式”的时候onPause() onStop()
- 当这个
fragment
被销毁了(或者持有它的activty
被销毁)onPause() onStop() onDestroyView() onDestroy()
- 像
Activity
一样,在以下的状态中,可以通过Bundle
对象获取保存的数据onCreate() onCreateView() onActivityCreated()
其它场景的调用
- 屏幕灭掉
onPause() onStop() onSaveInstanceState()
- 屏幕解锁
onStart() onResume()
- 切换到其他
Fragment
onPause() onStop() onDestroyView()
- 切换回本身的
Fragment
onCreateView() onActivityCreated() onStart() onResume()
- 回到桌面
onPause() onStop() onSaveInstanceState()
- 回到应用
onStart() onResume()
- 退出应用
onPause() onStop() onDestroyView() onDestroy() onDetach()
Fragment
和 Activity
的生命周期对比图