TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.12K subscribers
Post #908 3.54K
​​Как устроен viewModelScope?
#android

При работе с coroutines мы частенько можем забыть отменить нужную нам джобу в тот момент, когда она нам больше не нужна. К счастью для нас, существует viewModelScope, который уничтожает ненужные coroutines в тот момент, когда уничтожается ViewModel.

❓Давайте рассмотрим чуть детальнее, как он работает внутри.
Класс ViewModel содержит внутри Map объектов, кототорые могут содержать любой тип объектов.
Нам интересен метод clear(), который вызывается перед методом onCleared() и который мы можем переопределить в нашей модели. Тут вызывается метод closeWithRuntimeException(), который как раз и завершает нужный нам Scope, так как он имплементирует интерфейс Closeable.

Подобное поведение можно было довольно просто организовать и самостоятельно, однако пришлось бы сделать кастомный Scope и завершить его в нужном нам месте. Разработчики Jetpack нам чуть-чуть упростили задачу.

Ещё больше почитать о внутренней работе ViewModel можно тут.
  • 👍 17
More from @android_live
  1. Sep 29, 2026Post #1130
  2. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  3. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  4. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
  5. Sep 25, 2026Похоже, есть что посмотреть на выходных Недавно вышло интервью с Женей Вороновым Jake Whar…
  6. Sep 15, 2026Google выкатили ARTEMIS Эта инструмент, который превращает обычный текст в реальные действ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →