Fragment生命周期的简单分析



    Fragment的生命周期在不同的场景下,可以有不同的形式:

    通常通过FragmentManager管理的Fragment生命周期(通过remove或者replace替换fragment)为:
    创建:onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume
    回收:onPause->onStop->onDestroyView->onDestroy->onDetach
    另外,我们可以通过show和hide来替换在界面上显示的Fragment,show和hide不影响Fragment的生命周期,可以通过这样的方式来缓存Fragment,提高切换速度(当然存在一定的内存成本)。

    通过ViewPager和FragmentPageAdapter的组合使用Fragment的情况下,Fragment会被回收后再使用:
    默认情况下,ViewPager为保留当前Fragment,及前后的一个Fragment:
     Fragment生命周期的简单分析_第1张图片
    如上如所示情况下,上新,最后疯抢,童装三个fragment会被保留,而其他fragment会被释放,等待重用。这个行为可以通过ViewPager.setOffsetPageLimit函数修改。
    
    创建:onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume
    释放以待下次使用:onPause->onStop->onDestroyView
    再次使用:onCreateView->onActivityCreated->onStart->onResume
    彻底释放(通常是ViewPager所在的Activity回收了):onPause->onStop->onDestroyView->onDestroy->onDetach

    最后,在ViewPager中,我们可以通过onSaveViewState函数和onCreate/onCreateView/onActivityCreated来保存和恢复数据。
    Fragment生命周期的简单分析_第2张图片
    

    

你可能感兴趣的:(android,viewpager,Fragment,界面)