본문 바로가기
반응형

Lifecycle5

Android - ProcessLifecycleOwner 로 앱의 Foreground/Background 상태 처리하기 간혹, 앱이 Foreground인지 Background 상태인지에 따라 처리를 해 주어야할 때가 있다. 이를테면 Background에 빠졌을 때 UI와 관련된 작업을 멈춘다던지, 다시 Foreground로 돌아왔을 때 어떤 작업을 활성화해준다던지 등이 있을 수 있다. 이럴때, 특정 Activity/Fragment에서의 처리라면 해당 화면의 Lifecycle의 이벤트를 수신해서 처리할 수 있지만, 화면 레벨이 아닌 앱 레벨에서의 처리가 필요할때도 있다. 이럴때 마다 모든 Activity/Fragment의 이벤트를 수신받아 처리하기엔 과한 부분이 있다. 이를 해결하기 위해 ProcessLifecycleOwner를 사용할 수 있다. https://developer.android.com/reference/and.. 2023. 6. 19.
Android - Deep dive into LiveData - 2. setValue vs postValue LiveData를 사용할 때, 데이터의 변경은 어떻게 할 수 있을까? 제목에도 나와있듯이, setValue와 postValue가 있다. 왜 두 가지 방법이 있을까? 무슨 차이가 있는지 알아보자. public abstract class LiveData { ... /** * Sets the value. If there are active observers, the value will be dispatched to them. * * This method must be called from the main thread. If you need set a value from a background * thread, you can use {@link #postValue(Object)} * * @param value .. 2023. 1. 21.
Android - Deep dive into LiveData - 1. LiveData가 무엇인가요? 안드로이드 앱 개발에 가장 많이 활용되는 Jetpack Component를 꼽으라고 한다면 LiveData는 손에 꼽힐 것이다. 앱 규모가 커지고 복잡해지면서 상태관리가 중요해졌다. 그러다보니 자연스레 MVVM도 표준 아키텍처로 자리잡혔고, 이를 충분히 활용하기 위해 ViewModel과 LiveData가 사용된다. 이번 포스팅 주제로, 안드로이드 프레임워크에서 상태관리를 하기위해 안성맞춤인 LiveData에 대해 자세히 알아본다. LiveData? 공식 문서에서 소개하는 LiveData를 꼭 읽어보길 바란다. https://developer.android.com/topic/libraries/architecture/livedata?hl=ko LiveData 개요 | Android 개발자 | Android .. 2023. 1. 21.
Android - LifecycleOwner vs ViewLifecycleOwner Android 앱을 개발하면서 가장 기본적이고 중요한 것 중 하나는 앱의 생명주기라고 생각한다. 생명주기, Lifecycle은 Activity, Fragment, Service 와 같은 앱의 구성요소에 따라 다르다. 흐름은 어느정도 비슷하지만, 호출되는 함수가 다른 등의 차이가 있다. 현재 Android앱을 개발하면 Jetpack을 너무나도 당연히 사용하게 되고, LiveData와 ViewModel 또한 활용하고 있을 것이다. 그러다보면 자연스럽게 LifecycleOnwer, ViewLifecycleOwner에 대해 알게 된다. 그렇다면 이 둘의 차이는 무엇인지 정리해보자. LifecycleOwner가 뭐야? 먼저, LifecycleOwer에 대해 알아보자. https://developer.android.. 2023. 1. 15.