zoukankan      html  css  js  c++  java
  • 面试 -- 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

  • 相关阅读:
    关于二进制包安装MySQL出现yum安装保护多库场景解决
    关于 Fatal NI connect error 12170 错误
    调优排故笔记1-利用等待事件及相关文件和视图-Oracle内核揭秘
    MySQL的四种隔离级别
    Oracle绑定变量
    接口加密测试
    接口测试用例设计
    学习总结——接口测试中抓包工具的使用
    学习总结——JMeter做WebService接口功能测试
    JMeter做http接口压力测试
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/7067637.html
Copyright © 2011-2022 走看看