Fragment的生命周期

|碎片开始| -—>-

      |                     |

onInflate() -> onAttach() ->onCreate() -> onCreateView() -> onActivityCreated() ->onStart() -> onResume() -> 

                              |__________->____________|                                                           |                        |

                                                                  _______________<_______                          ^               |碎片运行|

                                                                 |                                            |                           |                        |  

                                    |碎片结束|  <- onDetach()<-onDestroy()<-onDestroyView()<- onStop()<-onPause()  <-


1.onInflate():布局视图扩充时调用,通常是在Actvity调用setContentView()来设置自己的主要布局时。

2.onAttach():在Fragment与Activity关联之后调用。当fragment被附加到Activity后,就不能再调用setArguments()。

3.onCreate():可以在此创建一个后台线程来获取此Fragment将需要的数据。

4.onCreateView():此处期望返回此Fragment的一个视图层次结构。注意,不应将视图层次结构附加到传入的viewGroup父元素中。该关联会在以后自动完成。如果viewGroup 的取值为null,这意味着该Fragment不可见,因为它没有附加任何的视图层次。这种情况下可以返回null。

5.onActivityCreate():它会在Activity完成其onCreate()回调之后调用。这里是在用户看到用户界面之前,你可对用户界面执行最后调整的地方。也可以在这里确保此Activity的任何其他Fragment已经附加到你的Activity。

6.onStart():现在用户已经能够看到Fragment,但是fragment还未开始与用户交互。

7.onResume():当此回调返回时,用户可以Fragment自由交互。

8.onPause():此回调暂停fragment与用户的交互。

9.onStop():此回调返回后,fragment将不可见。已经停止的fragment可以直接回到onStart回调,然后调用onResume()。

10.onDestroyView():它在将创建的视图层次结构与fragment分离之后调用。

11.onDestroy():在不再使用该Frament时被调用。注意:它仍然附加在Activity中并且可以被findFragmentByXXX方法返回,但是不能执行其他操作。

12.onDetach():调用它以后,Fragment不会与其Activity相绑定,它不再拥有视图层次结构,它的所有资源也应该已经被释放。


13.setRetainInstance():可以指定你不希望在重新创建Activity时完全销毁碎片,以便碎片可以恢复。True表示希望在活动重新启动时等待恢复,false表示从头创建一个新的fragment。调用setRetainInstance()的最佳位置是在fragment的onCreate()回调中。


你可能感兴趣的:(Fragment的生命周期)