【发布时间】:2021-07-16 04:30:32
【问题描述】:
我有一个片段 A,它从网络获取新数据并显示使用的列表。现在我切换到其他片段 B 并返回片段 A,它再次从网络获取数据。如何避免网络调用?我正在使用 viewmodel 和 livedata 来获取数据。
【问题讨论】:
-
你在 onResume() 中调用过 API 吗?
标签: android navigation fragment android-livedata
我有一个片段 A,它从网络获取新数据并显示使用的列表。现在我切换到其他片段 B 并返回片段 A,它再次从网络获取数据。如何避免网络调用?我正在使用 viewmodel 和 livedata 来获取数据。
【问题讨论】:
标签: android navigation fragment android-livedata
您可以使用改造并添加缓存机制。 Can Retrofit with OKHttp use cache data when offline
https://bapspatil.medium.com/caching-with-retrofit-store-responses-offline-71439ed32fda
这些会对你有所帮助。
使用共享的 ViewModel 和 Repository 模式,使用单个 livedata 对象,它存储最后一次点击响应...检查 liveData 是否有 API 响应,不要获取,否则获取新的响应。
我推荐第一个解决方案
【讨论】: