美文网首页android 技术梳理
我问你答-简述 Fragment 生命周期

我问你答-简述 Fragment 生命周期

作者: jkwen | 来源:发表于2021-01-07 18:08 被阅读0次
    Fragment 生命周期.jpg

    如上图所示,中间部分从上到下为 Fragment 这个生命周期的方法调用。左边对比参照的是 Activity 的生命周期,右边对比参照的是 Fragment 中 View 的生命周期(或者叫有效范围)

    • onAttach(Context context)
      通常情况下,Fragment 会依附于 Activity 使用,在 Fragment 中难免会用到 Activity 或者 Context 实例,可以通过该方法保存 context,其实就是所依附的 Activity,因为这步就是指 Fragment 被绑定在 Activity 上。或者也可以使用 getActivity() 或 getContext()。
    • onCreate(Bundle bundle)
      类似于 Activity 的同名方法,可用来做一些初始化操作,也可以在这里接收传递给 Fragment 的参数(即调用 getArguments() 方法)
    • onCreateView(LaoutInflater inflater, ViewGroup container, Bundle bundle)
      在这步进行 View 相关的初始化,该方法会返回相关的 View 实例。
    • onActivityCreated(Bundle bundle)
      这步表明所依附的 Activity 执行完 onCreate() 方法了,一般不太会用到,除非有特殊要求需要在这个节点或者之后去操作。
    • onStart()
      类似于 Activity 的同名方法,注意这里会在 Activity 的 onStart() 之后调用。
    • onResume()
      类似于 Activity 的同名方法,注意这里会在 Activity 的 onResume() 之后调用。
    • onPause()
      类似于 Activity 的同名方法,注意这里会先于 Activity 的 onPause() 调用。
    • onStop()
      类似于 Activity 的同名方法,注意这里会先于 Activity 的 onStop() 调用。
    • onDestroyView()
      在这步 View 会进行销毁,这个节点及之后就不能再引用 View 相关的对象了。
    • onDestroy()
      类似于 Activity 的同名方法,表示 Fragment 的销毁。
    • onDettach()
      这步是 Fragment 与 Activity 解绑操作,建议在这步将之前保存的 context 引用置空。

    另外关于 Fragment 的状态保存方法有:

    • onViewStateRestored(Bundle bundle)
    • onSaveInstanceState()

    这两个的用法和 Activity 的状态保存类似。要注意的是 onSaveInstanceState() 方法在 API 28 之前会在 onStop() 之前触发,在 API 28 及之后会在 onStop() 之后触发。

    相关文章

      网友评论

        本文标题:我问你答-简述 Fragment 生命周期

        本文链接:https://www.haomeiwen.com/subject/rpzzoktx.html