안녕하세요 오늘은 liveData의 observeForever에 대해 알아보겠습니다
observeForever
LiveData의 메서드로 LifecycleOwner가 아닐 때도 데이터를 관찰할 수 있도록 합니다
하지만 lifecycleOwner와 관계없이 데이터를 관찰할 수 있기에, 수동으로 해제하지 않으면 메모리 누수 위험성이 있습니다
해제해줄 땐 꼭 removeObserver를 호출해야 합니다 !
완전한 코드는 아니지만 대충 뉘앙스만 보자면,, 아래와 같은 형식으로요
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my)
// Observer 초기화
observer = Observer { data ->
// UI 업데이트
updateUI(data)
}
// LiveData 관찰
viewModel.data.observeForever(observer)
}
override fun onDestroy() {
super.onDestroy()
// Observer 해제
viewModel.data.removeObserver(observer)
}
LiveData의 본래 장점인 생명주기 관리와는 거리가 먼 거 같은데,, 전역으로 쓰이는 경우에 사용될 수 있다고 하네요 ,, ?
정확히 어떤 경우에 사용해야 좋은지는 잘 모르겠습니다 ..!
라이프사이클에 맞춰서 관리되는 observe를 사용하는 게 좋을 거 같은데
observeForever를 언제 사용하면 좋은지 의견이 있으신 분들은 알려주시면 감사하겠습니다 ..
'📱 Android' 카테고리의 다른 글
[Android] ViewPager2 감도 조절하기 (0) | 2025.02.08 |
---|---|
[Android] AAC의 LiveData, ViewModel의 LiveData (0) | 2025.02.04 |
[Android] binding 즉시 업데이트 하기 executePendingBindings (0) | 2024.11.21 |
[Android] 이미지뷰에 apng 파일 적용하기 (0) | 2024.11.17 |
[Android] Multipart / Presigned url (0) | 2024.11.14 |