Android/Development Tips

ViewModel 에서 Fragment, Activity 로 콜백을 조심하자

Nanamare 2021. 11. 18. 00:28
728x90

ViewModel 의 라이프 사이클은 Activity 나 Fragment 보다 길기 때문에 ViewModel 에서 Fragment, Activity 에 콜백 받는 것은 실수를 유발합니다 (ViewModel 에서든) 라이브데이터나 플로우를 사용하여 관찰(observe) 혹은 수집(collect) 하는 것이 좋습니다.

// Activity or Fragment.kt
viewModel.loadItemList() { list ->
    // Activity 가 Destroy 상태거나 Fragment 인 경우 not Attached 일 수 있음
    // 또한 isDestroyed 혹은 isAdd 와 같은 상태를 확인하는 처리가 필요하게 됩니다
    adapter.submitData(list)
}

 

 

728x90