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/
'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 |