Fragment的生命周期
下面贴出官网上的关于Fragment的生命周期图。第一张为Fragment的生命周期转换图,第二张为Fragment的生命周期与Activity的生命周期的对比。
Fragment生命周期详解
onAttach()
作用:fragment关联到activity
这个是 回调函数
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
参数为关联的Activity
onCreate()
作用:系统创建fragment的时候回调,可以在他里面实例化一些变量 这些个变量主要是:当你 暂停 停止的时候 你想保持的数据
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
onCreateView()
作用:返回Fragment的布局
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, container, false);
}
onActivityCreated()
作用:当Activity中的onCreate方法执行完后调用。
当执行onActivityCreated()的时候,activity的onCreate才刚完成。所以在onActivityCreated()调用之前 activity的onCreate可能还没有完成,所以不能在onCreateView()中进行与activity有交互的UI操作,UI交互操作可以在onActivityCreated()里面进行。这个方法主要是初始化那些你需要你的父Activity或者Fragment的UI已经被完整初始化才能初始化的元素。如果在onCreateView里面初始化空间会慢很多,比如listview等。
onStart()
和activity一致, Fragement启动时回调, 此时Fragement可见。
onResume()
和activity一致,Fragement 进入前台, 获得焦点时调用。
onPause()
和activity一致,当fragment被遮挡,但是未完全不可见时被调用。
onStop()
和activity一致,当fragment不可见的时候调用。
onDestroyView()
Fragment中的布局在onCreateView()中返回的view被移除时调用。只是移除,并没有销毁这个view。
onDestroy()
和activity一致,fragment对象被销毁时调用
onDetach()
Fragment和Activity解除关联的时候调用。
参考博客:wanghao200906