当我只想获取一次时,我应该在 Fragment 中的哪里进行网络调用?
Where should I make network calls in Fragment when I want to fetch just once?
我正在创建一个具有 BottomNavigation
和 Fragment
的应用。我在此处关注示例 https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample,但我看到
onCreateView
以及在选项卡之间切换时调用以下所有生命周期回调。我只想进行一次网络调用,因为我不想继续更新 UI 甚至浪费资源与服务器通信。我只能想到使用标志或检查缓存是否为空,但不知何故我觉得会有更干净的方法。
在这种情况下,您应该在 activity 中进行网络调用,然后一旦您需要相关数据,您可以从 activity 请求相同的数据。您可以参考下面 link 以了解如何 fetch/send 在 activity 和片段之间 fetch/send 数据。
Communicating between a fragment and an activity - best practices
此外,Fragment 或 Activity 不是放置网络调用的正确位置,建议您遵循 MVVM 或 MVP 等架构模式,并利用模型、存储库等进行网络调用。
我正在创建一个具有 BottomNavigation
和 Fragment
的应用。我在此处关注示例 https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample,但我看到
onCreateView
以及在选项卡之间切换时调用以下所有生命周期回调。我只想进行一次网络调用,因为我不想继续更新 UI 甚至浪费资源与服务器通信。我只能想到使用标志或检查缓存是否为空,但不知何故我觉得会有更干净的方法。
在这种情况下,您应该在 activity 中进行网络调用,然后一旦您需要相关数据,您可以从 activity 请求相同的数据。您可以参考下面 link 以了解如何 fetch/send 在 activity 和片段之间 fetch/send 数据。
Communicating between a fragment and an activity - best practices
此外,Fragment 或 Activity 不是放置网络调用的正确位置,建议您遵循 MVVM 或 MVP 等架构模式,并利用模型、存储库等进行网络调用。