Middle+
O que é SharedFlow e como difere do StateFlow?
sobes.tech IA
Resposta da IA
SharedFlow é um fluxo de dados de coroutines que envia valores a múltiplos assinantes (flux "quente").
StateFlow é uma variação do SharedFlow que representa um fluxo de estados. Sempre tem um valor inicial e envia o último valor conhecido para novos assinantes.
Principais diferenças:
| Característica | SharedFlow | StateFlow |
|---|---|---|
| Valor inicial | Não possui por padrão, pode definir replay |
Sempre possui um valor inicial obrigatório |
| Repetir valores para novos assinantes | Gerenciado pelo parâmetro replay |
Sempre repete o último valor |
| Buffer de valores | O tamanho do buffer é definido pelo parâmetro extraBufferCapacity |
O tamanho do buffer é 0 (exceto pelo último valor) |
| Emissão de valores iguais | Emite todos os valores, mesmo que sejam iguais | Não emite valores sequenciais iguais (se forem iguais por .equals()) |
| Caso de uso | Eventos, fluxos de dados | Estados de UI ou outros estados atuais |