Fragment生命周期执行情况:
1.启动Fragment:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated()-->onStart()-->onResume()息屏状态:onPause()-->onStop()
2.重新点亮屏幕:onStart()-->onResume()
3.退出:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach()Fragment
4.被回收又重新创建(横竖屏切换):被回收执行onPause()-->onSaveInstanceState()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach(),重新创建执行onAttach()-->onCreate()-->onCreateView()-->onActivityCreated()-->onStart()-->onResume();
1.onAttach() :Fragment已经关联到Activity,这个时候 Activity已经传进来了, 获得Activity的传递的值就可以进行与activity的通信, 当然也可以使用getActivity(),前提是Fragment已经和宿主Activity关联,并且没有脱离,有且只调用一次。
2.onCreate():初始化Fragment。可通过参数savedInstanceState获取之前保存的值。3.onCreateView():初始化Fragment的布局。加载布局和findViewById的操作通常在此函数内完成,但是不建议执行耗时的操作。
4.onActivityCreated():执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。
5.onStart():启动Fragement 启动时回调,,此时Fragement可见。
6.onResume():Fragment处于活动状态,用户可与之交互。
7.onPause():Fragment处于暂停状态,但依然可见,用户不能与之交互。
8.onStop():Fragment完全不可见。
9.onDestroyView():销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。
10.onDestroy():销毁Fragment对象。
11.onDetach():Fragment和Activity解除关联的时候调用。
网友评论