Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Android: coroutines, scope, lifecycle

Почему GlobalScope не рекомендуется для большинства случаев?

Этот вопрос проверяет понимание проблем, связанных с использованием GlobalScope в корутинах.

Короткий ответ

GlobalScope не привязан к жизненному циклу приложения, что может привести к утечкам памяти и неожиданному поведению. Вместо него рекомендуется использовать CoroutineScope с явным управлением (например, viewModelScope или lifecycleScope).

Длинный ответ

1. Проблемы GlobalScope:

  • Утечки памяти: Корутины в GlobalScope живут всё время работы приложения, даже если их родительский компонент (например, Activity) уничтожен.

  • Отсутствие отмены: Нет автоматической отмены при завершении контекста (например, закрытии экрана).

  • Сложность тестирования: Невозможно легко контролировать выполнение корутин в тестах.

2. Альтернативы:

  • viewModelScope (в Android) — автоматически отменяется при очистке ViewModel.

  • lifecycleScope — привязан к жизненному циклу компонента (например, Fragment).

  • Ручное создание CoroutineScope с Job() для явного управления.

Пример неправильного использования:

GlobalScope.launch {  
    // Корутина продолжит работать, даже если экран закрыт  
    fetchData()  
}  

Пример правильного использования:

viewModelScope.launch {  
    // Корутина отменится при очистке ViewModel  
    fetchData()  
}  

Вывод:
GlobalScope подходит только для глобальных задач (например, логирования), но не для привязки к UI или бизнес-логике.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Android

    Android

Ключевые слова

#coroutines

#scope

#lifecycle

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.