Fragment生命周期详解

最近使用ViewPager+Fragment的组合,遇到一些生命周期以及缓存的问题,总结一下。


第一次创建Fragment的时候,其实执行了这么多方法:

onAttach -> onCreate -> onCreateView ->onViewCreated -> onActivityCreated
 -> onViewStateRestored -> onStart -> onResume

其中onViewCreated、onViewStateRestored官方帮助没有提到,但你有时确实可以用到。

按HOME键或者打开别的应用时:

onPause -> onStop

从桌面回来或者从别的应用回来:

onStart -> onResume

我在将Fragment和ViewPager一起使用的时候(使用FragmentPagerAdapter !!),还遇见过这种情况,ViewPager中有三个Fragment1、2、3,通过ViewPager从Fragment2切换到Fragment3的时候Fragment1执行的是:

onPause -> onStop -> onDestroyView


Fragment3切换到Fragment2的时候Fragment1执行的是:
onCreateView -> onViewCreated -> onActivityCreated -> onViewStateRestored
-> onStart -> onResume

退出ViewPager所在的Activity的时候Fragment被彻底销毁将要执行的是:

onPause -> onStop -> onDestoryView -> onDestory -> onDetach

这种情况是在ViewPager的缓存页默认为1的情况,而且ViewPager是使用FragmentPagerAdapter适配器的,如果使用的是FragmentStatePagerAdapter由于该 Adapter 的实现将只保留当前页面,当页面离开视线后,就会被消除,释放其资源,所以三个Fragment切换时就如同不断地退出Activity和进入Activity。


资料:

http://feelyou.info/fragment_lifecycle/

http://www.cnblogs.com/lianghui66/p/3607091.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值