MutableLiveData<List<Track>>()
fun loadTracks(): LiveData<List<Track>> {
viewModelScope.launch {
tracksLiveData.postValue(trackRepository.getAllTracks())
}
return tracksLiveData
}
...
Вместо такого
private val tracksLiveData = MutableLiveData<List<Track>>()
fun getTracksLiveData() : LiveData = tracksLiveData
fun loadTracks() {
viewModelScope.launch {
tracksLiveData.postValue(trackRepository.getAllTracks())
}
}
Если я правильно понимаю то у нас есть вероятность того что мы подпишемся а значение уже отправлено и мы это значение не получим, верно?
первый вариант непонятно зачем
Хотелось бы подписываться вот так вот :) model.loadTracks() .observe(viewLifecycleOwner) { }
Та нет, не должно)
Спасибо
С тем учётом, что там какой-то асинхронный вызов, не зря же ты обернул в скоуп
Да именно асинхронный. У меня все что в репозах то в io потоках. Стараюсь разделять).
Обсуждают сегодня