Fragment 生命周期(一)

最近经常用到Fragment,其中也遇到了好多问题。今天回过头来重新看一遍Fragment。

Fragment是Google在Android 3.0后推出的技术,随着手机、平板的快速更新,尺寸各不相同,为了提高代码的复用性,可以使用Fragment来封装UI和Java代码,来实现这一效果。

Fragment主要用到的场景有,逻辑共享,状态保存,回退导航和整体移动。

Fragment是不能单独工作的,它必须依托于Activity,Activity有着其生命周期,Fragment同样也具有生命周期。Fragment的生命周期比Activity的生命周期更复杂,两者生命周期的方法交替执行。

Fragment生命周期图如图所示

onAttach(Activity activity)   Fragment与Activity关联后立即执行,Fragment.getActivity()获取窗口类对象。

onCreate(Bundle savedInstanceState)   onAttach()执行后立即执行 ,可以保存Fragment的状态值。

onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)  加载布局,保存状态。

onViewCreated(View view,Bundle savedInstanceState)  onCreateView()执行后立即执行,view 为上一个方法的view。执行完这个方法后就开始执行Activity.onCreate()方法。

onActivityCreated(Bundle savedInstanceState)  Activity的onCreate()方法执行完后,立即执行。接着执行Activity.onStart()方法。

onStart()  执行完此方法,Fragment窗口已经可以显示,但是不能交互。接着执行Activity.onResume()方法。

onResume() 该方法执行完后,Fragment窗口就显示完毕了,可以交互。

当用户操作或者弹出其他窗口,当前活跃的Fragment就会变得不活跃。

onPause() 第一个要执行的方法,在该方法中执行需要临时暂停的工作,重新获取焦点后执行onResume()方法。  接着执行Activity.onPause()。

onStop()  Fragment窗口从屏幕上消失,重新获取焦点执行onStart(),onResume()。  接着执行Activity.onStop()。

onDestoryView()  如果Fragment状态被保存,或者从回退栈中退出,调用此方法,View与Fragment分离。

onDestory()  Fragment 不再使用。但仍和窗口关联,Fragment对象不能使用。

onDetach()  Fragment所有的View对象和资源都被销毁。接着调用Activity.onDestory()。


下图为Activity和Fragment的关系




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值