시배's Android
Kotlin Coroutines Deep Dive | 13장. 코루틴 스코프 만들기 본문
Book/Kotlin Coroutines Deep Dive
Kotlin Coroutines Deep Dive | 13장. 코루틴 스코프 만들기
si8ae 2024. 2. 5. 22:41CoroutineScope 팩토리 함수
- CoroutineScope는 coroutineContext를 유일한 프로퍼티로 가지고 있는 인터페이스입니다.
- CoroutineScope를 구현한 클래스에서 cancel이나 ensureActive 같은 다른 CoroutineScope의 메서드를 직접 호출하면 문제가 발생할 수 있습니다.
- 코루틴 스코프 인스턴스를 프로퍼티로 가지고 있다가 코루틴 빌더를 호출할 때 사용하는 방법이 선호됩니다.
- 코루틴 스코프 객체를 만드는 가장 쉬운 방법은 CoroutineScope 팩토리 함수를 사용하는 것입니다.
- 이 함수는 컨텍스트를 넘겨 받아 스코프를 만듭니다.
안드로이드에서 스코프 만들기
- BaseViewModel에서 스코프를 만들면, 모든 뷰 모델에서 쓰일 스코프를 단 한번으로 정의합니다.
- 따라서 MainViewModel에서는 BaseViewModel의 scope 프로퍼티를 사용하기만 하면 됩니다.
- 메인 스레드가 많은 수의 함수를 호출해야 하므로 기본 디스패처를 Dispatchers.Main으로 정하는 것이 가장 좋습니다.
- 스코프를 취소가능하게 만들기 위하여 onDestroy 메소드나 onCleared에서 취소하도록 합니다.
- 전체 스코프 대신 스코프가 가지고 있는 자식 코루틴만 취소하는 것이 더 좋은 방법입니다.
- 해당 스코프에서 시작된 각각의 코루틴이 독립적으로 작동해야 할 필요도 있습니다. (SupervisorJob)
'Book > Kotlin Coroutines Deep Dive' 카테고리의 다른 글
Kotlin Coroutines Deep Dive | 15장. 코틀린 코루틴 테스트하기 (0) | 2024.02.12 |
---|---|
Kotlin Coroutines Deep Dive | 14장. 공유 상태로 인한 문제 (0) | 2024.02.12 |
Kotlin Coroutines Deep Dive | 12장. 디스패처 (0) | 2024.02.05 |
Kotlin Coroutines Deep Dive | 11장. 코루틴 스코프 함수 (0) | 2024.01.31 |
Kotlin Coroutines Deep Dive | 10장. 예외처리 (0) | 2024.01.31 |