viewModel에서 livedata를 사용하다 보면, setvalue와 postvalue라는 친구들을 볼 수 있습니다.
이 친구들의 차이가 뭘까 하고 궁금해서 찾아봤는데
setValue()
메인 쓰레드에서 그 값이 즉시 반영됩니다.
postValue()
setvalue와 다르게 백그라운드에서 동작합니다.
내부적으로 동작하는 코드는 아래와 같습니다.
new Handler(Looper.mainLooper()).post(() -> setValue())
setvalue와 다르게 가장 최신의 값이 변경이 되며, 즉시 값이 변경되지 않을 수 있습니다.
- 참조
https://leveloper.tistory.com/179
https://wooooooak.github.io/android/2019/06/11/Android_liveData_value/
'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 |