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添加到回退栈中

(2) popBackStack():销毁回退栈中栈顶的Fragment

(3) getBackStackImmediate():立刻销毁回退栈中栈顶的Fragment

(4) getBackStackEntryAt(int index):获取回退栈中该索引值下的Fragment

(5) getBackStackEntryCount():获取Fragment回退栈中的Fragment个数

你可能感兴趣的:(Android开发之Fragment生命周期(简单明了))