viewModel에서 livedata를 사용하다 보면, setvalue와 postvalue라는 친구들을 볼 수 있습니다.
이 친구들의 차이가 뭘까 하고 궁금해서 찾아봤는데
setValue()
메인 쓰레드에서 그 값이 즉시 반영됩니다.
postValue()
setvalue와 다르게 백그라운드에서 동작합니다.
내부적으로 동작하는 코드는 아래와 같습니다.
new Handler(Looper.mainLooper()).post(() -> setValue())
setvalue와 다르게 가장 최신의 값이 변경이 되며, 즉시 값이 변경되지 않을 수 있습니다.
- 참조
https://leveloper.tistory.com/179
[Android] LiveData setValue() vs postValue()
최근에 프로젝트에서 백그라운드 쓰레드에서 콜백 함수를 호출해 LiveData의 값을 변경해줘야 하는 로직이 있었다. 이때, setValue() 함수를 호출해 값을 변경해줬는데, 값이 변경되지 않는 이슈가
leveloper.tistory.com
https://wooooooak.github.io/android/2019/06/11/Android_liveData_value/
AAC LiveData setValue() vs postValue() · 쾌락코딩
AAC LiveData setValue() vs postValue() 11 Jun 2019 | AAC LiveData AAC ViewModel을 사용하면서 구글이 제공하는 LiveData를 많이 사용한다. LiveData는 setValue()와 postValue()메서드를 제공한다. 두가지 메소드 모두 MutableLiv
wooooooak.github.io
'Android(Kotlin)' 카테고리의 다른 글
엘비스 연산자 (0) | 2021.10.15 |
---|---|
Constraint layout linear layout relative layout 퍼포먼스 (0) | 2021.10.15 |
코루틴과 쓰레드의 차이 (0) | 2021.10.07 |
Android LruCache kotlin (0) | 2021.10.06 |
Simple ViewPager (0) | 2021.10.01 |