작성
·
584
답변 1
0
안녕하세요 angella님
질문주신 부분에 대해서
그 이후 livedata인 뷰모델에 선언된 변수, selectedCoinList가 업데이트 되어서 다시 리사이클러뷰가 업데이트되는 것인가요? 어떻게 리사이클러뷰의 UI가 업데이트 되는 것인지가 헷갈려 질문드립니다.
혹시 liveData의 동작방식에 대한 문의이실까요?
아니면 flow의 동작방식에 대한 문의이실까요?
코드와 함께 좀 더 자세히 문의주시면 도움드릴 수 있을 것 같습니다 :)
좋은 질문이시네요.
업데이트를 클릭하면 일어나는 일들을 순서대로 써보겠습니다.
업데이트를 누르면 선언된 viewModel에 update기능 실행
viewModel에서 Room을 호출해서 db업데이트
flow와 room을 같이 쓰고 있기 때문에 변경사항 flow로 반환
flow를 livedata 형태로 사용하여 livedata가 변경사항 감지
livedata가 변경되면서 observe 부분이 실행되어 UI 업데이트
의 순서입니다.
혹시 설명이 부족했거나 어려우신 부분 있으시면 알려주세요~
아래의 링크를 참고하셔도 좋아요~
관심있는 코인을 누르면 콜백 함수를 통해 viewModel.updateInterestCoinData함수가 실행되고, MainViewModel 에서 dbRepository.updateInterestCoinData(interestCoinEntity) DB가 업데이트가 되는 걸로 이해했습니다. 그 이후 어떻게 recyclerview의 UI가 업데이트 되는지 정확하게 이해가 되지 않아 질문드렸습니다!