Выбор ответа Middle Flow, StateFlow и SharedFlow спрашивают часто обновлено

StateFlow и SharedFlow

Вопрос

Какое утверждение про StateFlow верно?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Хранит значение, отдаёт его новым подписчикам, повторы пропускает. StateFlow горячий, всегда имеет value (начальное обязательно), новый подписчик сразу получает текущее значение, а повторное равное значение пропускается (distinctUntilChanged по equals).

Варианты ответа

  1. Он холодный и выполняется заново для каждого подписчика
  2. Хранит значение, отдаёт его новым подписчикам, повторы пропускаетправильный ответ
  3. Он может не иметь начального значения до первого emit
  4. Он доставляет каждое значение ровно одному подписчику

Разбор

StateFlow горячий, всегда имеет value (начальное обязательно), новый подписчик сразу получает текущее значение, а повторное равное значение пропускается (distinctUntilChanged по equals). По сути это SharedFlow с replay = 1 и конфляцией. Доставка ровно одному подписчику это свойство Channel.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.