CoroutinesScope определяет контекст и жизненный цикл корутины. Он управляет группой дочерних корутин и отменяет их при отмене самого скоупа.
В Android CoroutineScope используется для привязки жизненного цикла корутин к жизненному циклу компонента (Activity, Fragment, ViewModel).
Существует несколько типов скоупов:
GlobalScope
: Живет на протяжении всего приложения. Его использование не рекомендуется из-за сложности отмены и потенциальных утечек памяти.ViewModelScope
: Предоставляется KTX библиотекой для ViewModel. Отменяется автоматически, когда ViewModel очищается (onCleared()).LifecycleScope
: Предоставляется KTX библиотекой для Activity/Fragment. Привязан к жизненному циклу компонента и отменяется при его уничтожении. Можно запускать корутины в разных состояниях жизненного цикла (lifecycle.coroutineScope.launchWhenCreated
, lifecycle.coroutineScope.launchWhenStarted
, lifecycle.coroutineScope.launchWhenResumed
).CoroutineScope
при необходимости.Пример использования ViewModelScope:
kotlin
CoroutinesScope определяет контекст и жизненный цикл корутины. Он управляет группой дочерних корутин и отменяет их при отмене самого скоупа.
В Android CoroutineScope используется для привязки жизненного цикла корутин к жизненному циклу компонента (Activity, Fragment, ViewModel).
Существует несколько типов скоупов:
GlobalScope
: Живет на протяжении всего приложения. Его использование не рекомендуется из-за сложности отмены и потенциальных утечек памяти.ViewModelScope
: Предоставляется KTX библиотекой для ViewModel. Отменяется автоматически, когда ViewModel очищается (onCleared()).LifecycleScope
: Предоставляется KTX библиотекой для Activity/Fragment. Привязан к жизненному циклу компонента и отменяется при его уничтожении. Можно запускать корутины в разных состояниях жизненного цикла (lifecycle.coroutineScope.launchWhenCreated
, lifecycle.coroutineScope.launchWhenStarted
, lifecycle.coroutineScope.launchWhenResumed
).CoroutineScope
при необходимости.Пример использования ViewModelScope:
kotlin
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.