Выбор ответа Middle Корутины и structured concurrency спрашивают часто обновлено
Отмена родительской корутины
Вопрос
Что произойдёт с дочерними корутинами при parentJob.cancel()?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Они будут отменены вместе с родителем. По правилам structured concurrency отмена распространяется сверху вниз: отменяется родитель, отменяются все его дети.
Варианты ответа
- Они продолжат работу до завершения
- Они станут корневыми корутинами в
GlobalScope - Отменится только последняя запущенная
- Они будут отменены вместе с родителемправильный ответ
Разбор
По правилам structured concurrency отмена распространяется сверху вниз: отменяется родитель, отменяются все его дети. Так закрытие экрана через viewModelScope останавливает все запросы этого экрана. Дети не «отвязываются» и не переходят в GlobalScope.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.