• Fragment 的生命周期


     

    Fragment的生命周期,按照正常顺序来看依次是:

    onAttach(),老式的方法是以Activity为参数,后来改成了context做参数。但是其实我实际项目中并没有重写这一方法,因为其父类方法就可以完成Activity和fragment的绑定(关联)。

    onCreate(), 在这个方法里可以初始化一些数据,这些数据在onPause(),onStop()调用之后也能保持住不被销毁。另外隐藏状态栏这种操作也可以放在这里。要注意的是这个onCreate()只调用一遍,所以如果fragment没有被销毁并重新创建的话,一些指示当前fragment以方便Activity管理的flag参数就不要在这里设置。

    onCreateView(), 如果设置了模拟返回栈,那么在onDestroyView()之后,fragment就会回到这里。这个地方主要是产生一个可以在上面画控件的layout,并返回一个view类实例。要注意的是不应该在这里画控件,可能会出错。当我把flag参数放在这里时,是可以正常工作的(也许是因为似然没有加进返回栈,但fragment都没有执行到onDestroy()那一步)。

    onActivityCreated(), 这里就比较适合初始化控件。当fragment执行到这里的时候,对应的是Activity的onCreate()刚执行完成。

    -----------------接下来几个方法和Activity中是一样的作用:---------------

    onStart(), fragment可见。

    onResume(), fragment可获取焦点(可以点击?)。如果要设置窗口(强制/感应)横屏或竖屏,代码可加在这里。

    onPause(),fragment 失去焦点但仍可见,部分遮挡(比如出现dialog时吧)。

    onStop(), fragment被完全遮挡。

    ---------------------------------------------------------------------------------------------

    onDestroyView(), layout被移除,包括控件资源。比如在使用viewPager时,因为它的缓存机制总是同时保存三个fragment,当滑动到第四个页面时,第一个页面会执行onDestroyView(),但未执行onDestroy(), 所以它会仍然与Activity保持关联。这样在重新滑动到第一页时,它会直接执行onCreateView()。

    onDestroy(), 与Activity中的一样,销毁。

    onDetach(), fragment与Activity解除关联(都销毁了还有啥关联?)

  • 相关阅读:
    1081. Rational Sum (20) -最大公约数
    在Debug模式下中断, 在Release模式下跳出当前函数的断言
    net-snmp配置文件详解
    net-snmp5.7.3移植到arm-linux平台
    NET-SNMP开发——日志输出
    SNMP常用数据操作
    40 网络相关函数(八)——live555源码阅读(四)网络
    39 网络相关函数(七)——live555源码阅读(四)网络
    38 网络相关函数(六)——live555源码阅读(四)网络
    37 网络相关函数(五)——live555源码阅读(四)网络
  • 原文地址:https://www.cnblogs.com/jason31/p/9521985.html
Copyright © 2020-2023  润新知