728x90
반응형
LiveData는 ViewModel을 배우면서 배워야할거같아서 따로 알아보게 되었다.
LiveData란?
LiveData는 식별 가능한 데이터 홀더 클래스이다. 이게 무슨 말이냐면 LiveData는 무언가를 관찰하며
바뀌는게 있는지 없는지 체크하는것이다.
그렇다면 LiveData는 무얼 관찰할까?
LiveData가 관찰하는것은 LifeCycle 즉 수명 주기이다.
LiveData는 액티비티, 프래그먼트, 서비스 등의 앱 구성요소의 수명주기를 관찰하면서
그중 활동하고 있는 요소들만 업데이트 시켜주는것이다.
LiveData는 주어진 LifeCycleOwner (생명주기 주인)에 따라서 생명주기가 결정이 된다.
따라서 LifeCycleOwner의 상태를 확인해가면서 Active일때 observe하면 바뀐내용을 받아올수 있게 해준다.
MutuableLiveData 란?
MutuableLiveData 은 LiveData와 안의 내용을 바꿀수 있다는것을 제외하고는 다를게 없다.
LiveData 사용법
LiveData를 사용하려면 dependencies를 추가해줘야 한다.
//ViewModel 사용에 필요한 변수
def lifecycle_version = "2.4.0-alpha02"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
그리고 추가를 해줬다면 LiveData를 정의해준다.
private MutableLiveData<타입 지정> mNicePlaces;
그리고 해당 LiveData를 사용할 액티비티에 observe() 메소드를 사용해준다.
//getNicePlaces()에서 변화가 생기면 진입하는데 해당 액티비티의 상태가 Actice가 아니면 바뀐내용을 받아오지 않고
//Active가 되면 가장최신의 업데이트 내용을 받아온다.
mMainActivityViewModel.getNicePlaces().observe(this, new Observer<List<NicePlace>>() {
//변화 감지후 할일을 적는다
});
observe()의 매개변수로는 LiveData를 사용한 Context와 Observer Class를 익명객체로 받고 해당 객체 안에서는
변화를 감지후의 할 내용들을 담는다.
반응형
'코딩일기 > android studio' 카테고리의 다른 글
안드로이드 독학 23일차 : Fragment란? (0) | 2021.07.25 |
---|---|
안드로이드 독학 22일차 : MVVM 패턴에 대하여(Java) (1) | 2021.07.13 |
안드로이드 독학 22일차 : ViewModel 설명 및 사용법 (0) | 2021.07.13 |
안드로이드 독학 21일차 : Recycler View 사용법 (0) | 2021.07.12 |
안드로이드 독학 20일차 : androidx란? (0) | 2021.07.06 |