📱 Android

[Android] LiveData - observeForever

콩드로이드 2025. 3. 21. 21:53

안녕하세요 오늘은 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를 언제 사용하면 좋은지 의견이 있으신 분들은 알려주시면 감사하겠습니다 ..