Fragment生命周期

Fragment生命周期方法含义:

  • onAttach(Context context)

    onAttach()方法会在Fragment与Activity窗口关联后立刻调用。
    可以通过Fragment.getActivity()方法获取与Fragment关联的Activtiy窗口对象

  • onCreate(Bundle savedInstanceState)

在调用完onAttach()执行完之后,立即就会调用onCreate()方法,可以在Bundle对象中获取一些在Activity中传过来的数据。

  • onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)

在该方法中创建Fragment显示的View,其中inflater是用来装载布局文件的

  • onViewCreated(View view,Bundle savedInstanceState)

Android在创建完Fragment中的View对象之后,会立刻回调该方法。其中view参数就是onCreateView中返回的view

  • onActivityCreated(Bundle savedInstanceState)

在Activity的onCreate()方法执行完之后,Android系统会立刻调用该方法,表示Activity窗口已经初始化完成,从这一个时候开始,就可以在Fragment中使用getActivity().findViewById(R.id.xxx);来操作Activity中的view了。

  • onStart()

fragment已经显示在UI上了,但还不能进行互动

  • onResume()

fragment就可以与用户互动了

  • onPause()

fragment由活动状态变成非活跃执行的第一个回调方法,通常可以在这个方法中保存一些需要临时暂停的工作。例如:存音乐播放速度,然后在onResume()方法中恢复音乐播放进度。

  • onStop()

当onStop()返回的时候,fragment将从屏幕上消失。

  • onDestoryView()

该方法的调用意味着在onCreateView()中创建的视图都将被移除。

  • onDestroy()

Android在Fragment不再使用时会调用该方法,要注意的是~这是Fragment还和Activity是藕断丝连!并且可以获得Fragment对象,但无法对获得的Fragment进行任何操作。

  • onDetach()

当该方法执行完后,Fragment与Activity不再有关联。

Activity Fragment生命周期对比

Fragment与Activity生命周期的对比.png

单个 Activity + Fragment 的启动,生命周期

Activity onCreate
Fragment onAttach
Fragment onCreate
Fragment onCreateView
Fragment onViewCreated

Activity onStart
// 下面两个由 super.onStart 触发
Fragment onActivityCreated
Fragment onStart

Activity onResume

Activity onPostResume
// 下面一个由 super.onPostResume 触发
Activity onResumeFragments
// 下面一个由 super.onResumeFragments 触发
Fragment onResume

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