• 面试 -- 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

  • 相关阅读:
    Word2010如何从指定页设置页码
    十大常见web漏洞及防范
    CSRF攻击与防御
    信息安全常见漏洞类型汇总
    回忆一次校招笔试的题目
    Python操作rabbitmq系列(三):多个接收端消费消息
    Python操作rabbitmq系列(二):多个接收端消费消息
    Python操作rabbitmq系列(一)
    Python操作Redis
    Python连接Redis
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/7067637.html
Copyright © 2020-2023  润新知