之前一直对Fragment的生命周期很疑惑,虽然很多文章都介绍过Fragment完整的生命周期,但在实际使用中,不同情况下Fragment各个生命周期方法的调用规律都不一样,比如在ViewPager中切换Fragment,所调用的生命周期方法就跟想象的不太一样)所以最近研究了一下Fragment的生命周期,在这里总结一下。
首先按照惯例还是把下面两张图放在这里参考:
下面是不同情况下Fragment的生命周期:
1、Fragment在Activity中replace
新替换的Fragment:onAttach > onCreate > onCreateView > onViewCreated > onActivityCreated > onStart > onResume
被替换的Fragment:onPause > onStop > onDestroyView > onDestroy > onDetach
2、Fragment在Activity中replace,并addToBackStack
新替换的Fragment(没有在BackStack中):onAttach > onCreate > onCreateView > onViewCreated > onActivityCreated