fer*_*spr 6 android android-fragments android-livedata android-architecture-components
从2019年开始,我正在尝试遵循最佳实践,从哪里开始观察LiveDataFragments,以及是否应该将该方法作为参数传递this或viewLifecycleOwner作为observe()方法的参数。
根据此Google官方文档,我应该注意onActivityCreated()传递this(片段)作为参数。
根据这一谷歌样,我应该遵守onViewCreated()传递viewLifecycleOwner的参数。
根据这个I / O的视频,我不应该使用this,而是viewLifecycleOwner,但没有规定我应该从哪里开始观察。
根据这一缺陷后,我应该在遵守onActivityCreated()和使用viewLifecycleOwner。
因此,我应该从哪里开始观察?我应该使用this还是viewLifecycleOwner?
Rod*_*roz 14
如果从活动中观察,你可以观察onCreate()和使用this的LifecycleOwner的规定在这里:
如果您有一个与活动生命周期相关联的生命周期感知组件,它将收到 ON_CREATE 事件。使用 @OnLifecycleEvent 注释的方法将被调用,因此您的生命周期感知组件可以执行创建状态所需的任何设置代码。
现在,如果你在一个片段中观察,你可以观察onViewCreated()或onActivityCreated()和你应该使用getViewLifecycleOwner(),并在这里就是为什么:
获取代表 Fragment 的 View 生命周期的 LifecycleOwner。在大多数情况下,这反映了 Fragment 本身的生命周期,但在分离的 Fragment 的情况下,Fragment 的生命周期可能比 View 本身的生命周期长得多。
Fra*_*esc -1
onViewCreated无论您是在还是在 上执行都没有关系onActivityCreated。当片段膨胀时,onViewCreated首先调用,onActivityCreated然后调用。这确实是一个偏好问题。
该LiveData对象需要一个LifecycleOwner, 并且两者Fragment都Activity实现该接口,因此您只需要传递this.
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |