LiveData
- 라이브데이터 추가하는 방법
- Mutable Live Data를 사용하는 시기와 방법
- 라이브 데이터 변화 탐지를 위한 observer methods를 사용하는 벙법
- backing property를 사용해서 라이브 데이터를 캡슐화하는 방법
- UI컨트롤러와 연결된 뷰모델 사이에 커뮤니케이션 방법
Add LiveData to the GameViewModel
- 라이브데이터는 관찰할 수 있다. 이는 라이브데이터 객체가 변경될 때 옵저버에게 통지된다.
- 라이브데이터는 데이터를 가진다. 어떤 데이터에도 사용할 수 있다.
- 라이브데이터는 생명주기를 알고있다.
- 옵저버를 라이브 데이터에 연결하면 관찰자는 LifecycleOwner(프래그먼트, 액티비티)와 연결된다.
- 라이브데이터는 Started, Resumed같은 활성상태의 있는 옵저버만 업데이트한다.
현재 점수와 단어 데이터를 게임뷰모델에서 라이브데이터로 변환함으로써 모든 데이터 유형을 LiveData객체로 바꾸는 방법을 배워보자. 그 다음, 라이브데이터 객체에 대한 옵저버 추가와 어떻게 관찰하는지 배운다.
score, word 라이브 데이터로 변환
-
게임뷰모델파일의 score와 word를 MutableLiveData로 변경하자.
// The current word
val word = MutableLiveData<String>()
// The current score
val score = MutableLiveData<Int>()
-
init블럭에서 이를 초기화해준다. 라이브데이터 변수의 값을 바꾸기위해 setValue()
메소드를 쓴다. 코틀린에서 value
속성을 이용해서 setValue()
를 호출한다.
init {
word.value = ""
score.value = 0
...
}
라이브데이터 객체 참조 업데이트