面试 -- fragment生命周期

Android 3.0 (Api 11)引入;

Fragment具有重用,易适配(平板和手机之间的)优点;

依赖Activity,生命周期受到Activity的生命周期影响;

 

fragment生命周期每个方法的作用:

onAttach()
在片段已与 Activity 关联时调用(Activity 传递到此方法内)。

onCreate()
系统会在创建片段时调用此方法。您应该在实现内初始化您想在片段暂停或停止后恢复时保留的必需片段组件。

onCreateView()
调用它可创建与片段关联的视图层次结构。
onActivityCreated()
在 Activity 的 onCreate() 方法已返回时调用。

onStart()

执行该方法时,Fragment由不可见变为可见状态。

onResume()

执行该方法时,Fragment处于活动状态,用户可与之交互。

onPause()

执行该方法时,Fragment处于暂停状态,但依然可见,用户不能与之交互。

onStop()

执行该方法时,Fragment完全不可见。
onDestroyView()
在移除与片段关联的视图层次结构时调用。

onDestory()

销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
onDetach()
在取消片段与 Activity 的关联时调用。

 

Activity和Fragment生命周期对比:

Fragment生命周期执行流程:
Fragment创建:setUserVisibleHint()->onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume();
Fragment变为不可见状态(锁屏、回到桌面、被Activity完全覆盖):onPause()->onSaveInstanceState()->onStop();
Fragment变为部分可见状态(打开Dialog样式的Activity):onPause()->onSaveInstanceState();
Fragment由不可见变为活动状态:onStart()->OnResume();
Fragment由部分可见变为活动状态:onResume();
退出应用:onPause()->onStop()->onDestroyView()->onDestroy()->onDetach()(注意退出不会调用onSaveInstanceState方法,因为是人为退出,没有必要再保存数据);
Fragment被回收又重新创建:被回收执行onPause()->onSaveInstanceState()->onStop()->onDestroyView()->onDestroy()->onDetach(),重新创建执行onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume()->setUserVisibleHint();
横竖屏切换:与Fragment被回收又重新创建一样。

参考:

https://developer.android.com/guide/components/fragments.html

http://blog.csdn.net/u013519989/article/details/53117460

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值