Моя модель представления повторно извлекает мои данные, в результате чего мое мерцание продолжает выполняться каждый раз, когда я добираюсь до этого фрагмента, а также данные перезагружаются, из-за чего мой счет в Firebase увеличивается
Как я могу предотвратить повторное получение данных каждый раз, когда появляется мой фрагмент?
С моей точки зрения
viewModel.fetchShops(location).observe(viewLifecycleOwner, Observer {
when(it){
is Resource.Loading -> {
shimmer.visibility = View.VISIBLE
shimmer.startShimmer()}
is Resource.Success -> {
shimmer.visibility = View.GONE
shimmer.stopShimmer()
adapter.setItems(it.data)
}
is Resource.Failure -> {
Toast.makeText(requireContext(),"Error fetching data",Toast.LENGTH_SHORT).show()
}
}
})
Я вызываю это в своем onViewCreated(), поэтому каждый раз, когда этот фрагмент воссоздает мой Resource.Loading, а также fetchShops(location) и это снова загружает мою базу данных, я хочу, чтобы она загружалась только один раз каждый раз, когда я возвращаюсь к этому фрагменту, есть идеи?
ViewModel
fun fetchShops(location:String) = liveData(Dispatchers.IO) {
emit(Resource.Loading())
try{
emit(repo.fetchShops(location))
}catch (e:Exception){
emit(Resource.Failure(e))
}
}
Подробнее здесь: https://stackoverflow.com/questions/615 ... ng-of-data
ViewModel предотвращает повторную выборку данных ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение