Livedata

    [Android] SingleLiveEvent의 원리

    SingleLiveEvent를 사용하는 이유를 설명할 수 있어야 한다. LiveData를 이용하다보면, View의 재활성화 (start나 resume 상태로 재진입)가 되면서 LiveData가 observe를 호출하여, 불필요한 Observer Event까지 일어나는 경우가 있습니다. 이를 방지하기 위해 기존 LiveData를 상속하여 만들어낸 것이 SingleLiveEvent입니다. (SingleLiveEvent에 대해 상세히 알고싶다면 - 링크) 일반적인 SingleLiveEvent 코드는 다음과 같습니다. import android.util.Log import androidx.annotation.MainThread import androidx.lifecycle.LifecycleOwner import..

    [Android] What is LiveData

    📌 LiveData = 생명주기(LifeCycle)를 알고 있으며, 데이터를 들고 있는 클래스 (Data Holder Class) 📓 데이터를 들고있는 이유 LifeCycleOwner의 LifeCycle에 따라 이 데이터를 처리함으로써 여러 이점을 확보하기 위해서. 📒 LifeCycleOwner란 안드로이드 생명주기 (Android LifeCycle)를 알고 있는 클래스라 보면 된다. 메소드가 오직 getLifeCycle() 밖에 없는 단일 메소드 인터페이스 클래스이며, Activity나 Fragment에서 이를 상속하고 있다. 즉 저 둘은 LifeCycleOwner이기도 하다는 것이다. (26.1 버전 이상, 그전에는 직접 implements 해야함) 한 마디로 LiveData의 observer 메소드..