在片段onCreateView或onCreate方法中初始化ViewModel的最佳位置是哪一个?

Che*_*sel 5 android android-fragments

我在ViewModel中使用实时数据。

我有一个场景,其中有两个片段和一个活动。片段A和片段B。

从活动中,我启动了片段A(它显示了名称列表,即从后端获取),当我点击“名称”时,它显示了片段B(即回栈)。

现在从片段B开始,如果我按返回按钮,它将返回片段A,它显示了一个空白屏幕,因为我已经在片段A的onCreate方法中实现了ViewModel。

但是,如果我已经在片段A的oncreateView方法中实现了ViewModel,它将继续添加观察者,因为片段未被破坏。

Flo*_*her 8

为避免保留额外的Observersin onCreateViewgetViewLifecycleOwner()请将传递LifecycleOwnerLiveDataobserve方法。Observer一旦fragment'sView被销毁,这将删除前一个。