这个东西有顾名思义是碎片,和之前的Activity对应。

坑1:一般情况都会想当然的以为进程被杀掉之后,Fragment也会被回收

其实,Fragment有自己的生命周期,有自己的管理器(FragmentManager),也即:
包含Fragment的进程被干掉,Fragment不一定会被回收,而是由FragmentManager来决定生死。

Q:如何验证上面的说法?
A:如果是一般正常的流程“打开-关闭”软件,Fragment的确被回收了。但是如果使用“腾讯手机管家”之类的内存清理工具,清理内存(实际上是杀死进程),会发现Fragment没有被回收,一直缓存着。验证方法如下:缓存Fragment的Tag到本地数据库(可以是xml/sqlite等),然后FragmentManager.findFragmentByTag(...)是否为Null来验证Framgent是否被回收了。

有个奇怪的现状是:在上面蓝色的情况发生后,Framgent和包含他的Activity的生命周期顺序都乱套了,原本是:
Activity.onCreate-->Fragment.onCreate-->Fragment.onCreateView
变成:
Fragment.onCreate-->Activity.onCreate-->Fragment.onCreateView
猜测是因为直接用的Frament缓存,其onCreate先于父Activity.onCreate执行了。

坑2:添加Fragment注意事项,阅读:http://www.tuicool.com/articles/qaA7ry

相关文章:

  • 2022-12-23
  • 2021-10-29
  • 2021-12-15
  • 2022-12-23
  • 2022-01-02
  • 2022-02-02
  • 2022-01-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-14
  • 2021-12-12
  • 2021-09-23
  • 2021-07-21
  • 2021-07-23
相关资源
相似解决方案