见微知著从源码到原理剖析Fragment核心知识点

FragmentTransaction的4种提交方式

  • commit():如果在宿主执行了onSaveInstanceSate之后再执行该操作,会抛出异常。属于异步事务。
  • commitAllowingStateLoss():如果在宿主执行了onSaveInstanceSate之后再执行该操作,不会去检查宿主状态,不会抛出异常。但该操作不会被Activity记录,恢复时也就没办法恢复这些提交操作,所以该操作适用不重要的事务。同属于异步事务。

  • commitNow():会立刻执行当前提交的transaction事务。属于同步事务。

  • commitNowAllowingStateLoss():具备以上两者的特性,即是同步执行,也不会检查宿主的状态,有可能该操作不会被正确恢复

总结

  1. 官方更推荐使用commitNow()commitNowAllowingStateLoss()提交事务。
  2. Fragmenttransaction中add(),remove(),replace()背后的实现
  3. Fragment状态的保存和恢复发生的时机
  4. 页面重叠问题产生的原因与解决方案
  5. androidx Fragment懒加载新方案

results matching ""

    No results matching ""