Android(Kotlin)

setvalue postvalue 차이

----___<<<<< 2021. 10. 8. 22:50

 

 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