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生命周期对比
单个 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