【Android组件核心面试题】Fragment add与rep

2023-12-10  本文已影响0人  小城哇哇

Fragment add与replace的区别,分别对Fragment的生命周期影响(美团)

这道题想考察什么?
  1. 是否熟悉add和replace的应用场景
  2. 是否熟悉Fragment的事务操作后的处理流程

考察的知识点

  1. add和replace的应用场景
  2. Fragment事务操作后的处理流程

考生应该如何回答

1、首先我们先从add和replace应用场景出发

当我们对Activity使用事务添加一个Fragment时,有两种方法都可以做到,那就是add和replace。

如果FragmentA是使用add添加的,在将 FragmentA换为 FragmentB时,可以通过hide FragmentA,add FragmentB show FragmentB

如果 FragmentA使用replace操作添加的,在将 FragmentA换为 FragmentB时,使用replace替换

综上所述,我们可以得到一个实例开发中增加Fragment时很重要的一个结论:

2、然后分别对进行一个add和replace事物操作时,源码中是如何执行的。

要对add、replace事务操作源码中是如何处理的,那么先看下对Fragment事务操作提交流程。

image.png

从流程图中发现当执行第10步骤,也就是当调用BackStackRecord#expandOps方法时,对replace操作会进行修改。

总结:

面试官在问add、replace区别,我们可以从实际使用中真实感受出发 即第一点回答,描述完区别后;再来从源码角度说明replace本质是什么内容,replace本质就是将replace操作变为remove、add操作,旧的 Fragment走生命周期销毁流程,新传递的Fragment走生命周期创建流程。

最后

有需要面试题的朋友可以关注一下哇哇,以上都可以分享!!!

上一篇 下一篇

猜你喜欢

热点阅读