【发布时间】:2019-06-30 09:20:06
【问题描述】:
我在我的项目中使用 Jetpack 导航组件,其中包含一个活动和一些片段。
我有一个片段,其中包含一个从服务器端填充的列表。我在onViewCreated 方法上调用getDataFromServer 然后,当用户单击一个项目时,会显示一个新片段。
问题是当我按下返回按钮时,onViewCreated 在我的列表片段中再次被调用。
那么,如何防止我的第一个片段再次重新创建?我不想要不必要的onViewCreated 电话。
【问题讨论】:
-
通过在你的片段中覆盖它来使用 onActivityCreated 函数,并在那里获取你的 getDataFromServer!
-
@Rizwanatta 这是一个好技巧,我会这样做,但我正在等待更好的答案。谢谢
-
由于您使用的是导航组件,因此您可能也应该使用 ViewModels。它让生活更轻松
-
这就是他们发明
ViewModel+fragment.getViewLifecycleOwner()的原因。
标签: android fragment android-architecture-navigation android-navigation-graph fragment-lifecycle