见微知著从源码到原理剖析Fragment核心知识点
FragmentTransaction的4种提交方式
- commit():如果在宿主执行了
onSaveInstanceSate
之后再执行该操作,会抛出异常。属于异步事务。
commitAllowingStateLoss():如果在宿主执行了
onSaveInstanceSate
之后再执行该操作,不会去检查宿主状态,不会抛出异常。但该操作不会被Activity
记录,恢复时也就没办法恢复这些提交操作,所以该操作适用不重要的事务。同属于异步事务。commitNow():会立刻执行当前提交的
transaction
事务。属于同步事务。- commitNowAllowingStateLoss():具备以上两者的特性,即是同步执行,也不会检查宿主的状态,有可能该操作不会被正确恢复
总结
- 官方更推荐使用
commitNow()
和commitNowAllowingStateLoss()
提交事务。 - Fragmenttransaction中add(),remove(),replace()背后的实现
- Fragment状态的保存和恢复发生的时机
- 页面重叠问题产生的原因与解决方案
- androidx Fragment懒加载新方案