Android(Kotlin)

LiveData ViewModel

----___<<<<< 2021. 8. 18. 14:45

 LiveData에 대해서 알아보겠습니다.

 

 이름에서 느낄 수 있는 것은 생생한 데이터 입니다. 실제로 그런 용도에요

 

 어떻게 쓰는지 보기 전에, 왜 쓰는지부터 알아보겠습니다.

 

 - UI와 데이터 상태의 일치 보장(최신 데이터 유지)

 

 livedata라는 이름에 맞게, 생생한 데이터를 유지해야 합니다. 데이터가 변경될 때 마다 observer 객체에서 데이터 변화를 감지합니다.

 

 - 수명 주기 관리 용도

 

 ViewModel과 함께 사용하여 수명 주기를 일일이 관리해줄 필요가 없습니다.

 

 자, 그럼 LiveData는 어디서 선언해줘서 관찰해줘야 할까요? 

 

 주로 onCreate() 메서드에서 관리해주며, 그 이유는 onResume()에서 중복 호출을 피하기 위해서입니다.

 

 여기까지 간단하게 알아봤으니, 어떻게 사용하는지 알아보겠습니다.

 

 우선 LiveData를 사용하지 않을 때 입니다.

 

 예제 코드로는, 아래와 같습니다.

 

 ViewModel에 total이라는 값을 넣고

 

 

 ViewModelFactory에 초기값을 넣어놓고

 

 MainActivity에 125초기값을 넣어줍니다.

 

 

 아래와 같이, 값을 더해주는 앱입니다.

 

 

 그 다음, ViewModel을 livedata를 넣어서 수정해주는데, 잠깐 livedata와 mutableLiveData를 살펴보면

 

 livedata -> read only

 mutableLiveData -> editable

 

 을 알고 가면 좋을 것 같습니다.

 

 viewModel을 아래와 같이 수정한 다음

 

 

 MainActivity에서 observe를 통해서 값이 변하면 text를 변경해주도록 변경할 수 있습니다.

 

 

 여기에서 livedata를 사용하고 mutableLiveData를 private으로 바꿔주면 아래와 같이 변경해줄 수 있습니다.

 

 

 

 

 

 

 - 참조 

 

https://colinch4.github.io/2020-11-25/LiveData/

 

[안드로이드] LiveData 란

개발 강좌 블로그

colinch4.github.io

 

'Android(Kotlin)' 카테고리의 다른 글

간단한 Android Network 연결 상태 체크  (0) 2021.08.20
Fragment LifeCycle  (0) 2021.08.19
Android ViewModel  (0) 2021.08.18
데이터바인딩(databinding) 양방향 binding  (0) 2021.08.18
Android ViewBinding VS DataBinding  (0) 2021.08.18