Android开发之Fragment⽣命周期(简单明了)
引⾔
其实Fragment的⽣命周期与Activity的⽣命周期有很多相似之处,但是本⾝也有⾃⼰特有的⽣命周期。
正⽂
1.Fragment⽣命周期介绍
(1) onAttach():与Activity进⾏⼀个绑定
(2) onCreate():创建Fragment时的回调
(3) onCreateView:创建、绘制Fragment的View时回调该⽅法
(4) onActivityCreated:当Fragment所在的Activity被完全创建时回调该⽅法
(5) onStart():调⽤该⽅法时Fragment可见,但不可与⽤户进⾏交互
(6) onResume():调⽤该⽅法时Fragment可见也可与⽤户交互
(7) onPause():Fragment失去焦点,不可与⽤户交互
(8) onStop():Fragment停⽌,失去焦点、不可与⽤户交互、不可见
(9) onDestroyView():销毁Fragment视图,但未与Activity解除绑定
(10) onDestroy():销毁Fragment时的调⽤
(11) onDetach():与Activity解除绑定
2.执⾏流程
(1) Fragment创建:onAttach() --- onCreate() --- onStart() --- onResume()
(2) Fragment销毁:onPause() --- onStop() --- onDestroyView() --- onDestroy() --- onDetach()
(3) 按下Home键/锁屏:onPause() --- onStop()
(4) 从桌⾯回到Fragment/解锁:onStart() --- onResume()
(5) 切换到其他Fragment A-B:A执⾏的⽣命周期onPause() --- onStop() --- onDestroy() ,B执⾏的⽣命周期:onCreateView() ---onActivityCreated() --- onStart() ---onResume()
3.Fragment的setRetainInstance(true/false)⽅法
setRetainInstance(true/false)这个⽅法我们在平时可能没有注意到,其实我也是刚发现,这个⽅法可以帮我们有效的提⾼运⾏效率,当Fragment调⽤该⽅法后重建Activity时我们的Fragment可以不完全销毁,可以有效的提⾼我们App的运⾏效率,这个⽅法在Fragment的onCreate()⽅法中调⽤最合适,但是有⼀点需要注意,就是当Fragment调⽤setRetainInstance(true/false)⽅法后,在回复Fragment时不会再⾛我们的onCreate()和onDestroy()⽅法,所以不要再我们的onCreate()⽅法中进⾏⼀些逻辑处理或者初始化⼀些变量。
4.Fragment回退栈
我们的Activity是以压栈和出栈的⽅式来进⾏⼀个Activity的切换,但是我们的Fragment⼀般都是以销毁重建的⽅法来进⾏⼀个切换,所以我们可以将我们的Fragment添加到会退栈中,这样我们的Fragment也就有了跟Activity⼀样的栈管理。关于Fragment回退栈我只简单介绍⼀下,
具体使⽤就不再做详细的演⽰。
4.1 Fragment回退栈中的⼀些⽅法
(1) addToBackStack(tag):将Fragment添加到回退栈中简易安卓app开发
(2) popBackStack():销毁回退栈中栈顶的Fragment
(3) getBackStackImmediate():⽴刻销毁回退栈中栈顶的Fragment
(4) getBackStackEntryAt(int index):获取回退栈中该索引值下的Fragment
(5) getBackStackEntryCount():获取Fragment回退栈中的Fragment个数