Android/Kotlin

ArrayList LiveData가 여러번 초기화 될 때

등촌동 꼬북이 2023. 1. 4. 17:02

ArrayList  타입의 LiveData를 Observe 할 때 여러번 call 할 때가 있는때 이게 아래 같이 구현해서 그렇다.

 

val list: LiveData<List<DATA>> get() = _list
private val _list: MutableLiveData<List<DATA>> = MutableLiveData(ArrayList())

 

이렇게 하면 ArrayList()하면서 한번 데이터 값 변경할 때 한번 총 두번 호출되는건데

 

아래와 같이 변경하면 데이터 값을 읽어올 때만 호출된다.

 

val list: LiveData<List<DATA>> get() = _list
private val _list: MutableLiveData<List<DATA>> = MutableLiveData() // 초기화 구문 삭제