week.io

Fragment那点事④mAdded&mActive

2017-06-04  本文已影响16人  licrafter

文章里所有分析都是根据Android Sdk 25.3.1 v4包

资料链接 StackOverFlowmAdded and mActive Fragment Lists

经过前面几篇对 FragmentManager 源码的分析,对 mAddedmActive 这两个属性有了一定的理解,下面是在 StackOverFlow 上的一个问题,详细的总结了这两个属性的具体差异。

mAdded:

  1. 包含了所有已经 added 并且没有被从 Activity 中 removed 和 detached 的 Fragments。
  2. 这些 Fragment 在视图交互上有如下特性:
    • 对下面事件作出反应:
      • 低内存事件
      • configuration changes (比如屏幕旋转)
    • 展示自定义 menu 并对 menu 的点击作出回应 onMenuItemSelected()
    • Fragment 的生命周期响应它宿主 Activity 的生命周期
  3. 不在 mAdded 中的 Fragments 不能对事件作出相应和展示自定义的 menu。

mActive:

mAdded 的一个超集,是绑定到一个 Activity 上的所有 Fragment。包括返回栈中所有的通过任何 FragmentTransaction 添加的 Fragments。这是非常重要的因为如下原因:

什么情况下这两个 Fragment 的列表会变动呢?

上一篇下一篇

猜你喜欢

热点阅读