Android Coroutine 사용법
Activity 및 Fragment
- coroutine 은 앱이 백그라운드 상황에서 동작되는 것을 방지하기 위해 LifeCycle의 확장변수로 corotineScope을 선언하고 있다.
- 해당 coroutine scope는 onDestroy() 상황에서 Cancel 된다.
- coroutine Default Context 는 Dispatcher.Main.imemdiate이다.
- 추가적으로 (발표와 관련 없음) Fragment에서는 Fragment 객체의 수명주기가 아닌 Fragment View의 수명주기를 따라가야하기 때문에 viewOwnerLifeCycle의 lifeCycleScope를 활용하는 것이 좋다
예시(FragmentExtension.kt)
Android ViewModel에서 coroutine 사용 방법
- viewModelScope의 경우 lifeCycleScope과 동일하게 coroutine Default Context 는 Dispatcher.Main.imemdiate이다.
- 해당 ViewModel의 coroutine scope는 onCleared() 상황에서 Cancel 된다.