Middle+
Co je to SharedFlow a čím se liší od StateFlow?
sobes.tech AI
Odpověď od AI
SharedFlow je datový tok z coroutines, který odesílá hodnoty několika odběratelům ("horký" tok).
StateFlow je variace SharedFlow, která představuje tok stavů. Vždy má počáteční hodnotu a odesílá poslední známou hodnotu novým odběratelům.
Hlavní rozdíly:
| Charakteristika | SharedFlow | StateFlow |
|---|---|---|
| Počáteční hodnota | Nemá výchozí, lze nastavit replay |
Vždy má povinnou počáteční hodnotu |
| Opakování hodnot pro nové odběratele | Řídí se parametrem replay |
Vždy opakuje poslední hodnotu |
| Velikost bufferu | Velikost bufferu je nastavena parametrem extraBufferCapacity |
Velikost bufferu je 0 (kromě poslední hodnoty) |
| Vysílání stejných hodnot | Vysílá všechny hodnoty, i když jsou stejné | Nevysílá po sobě jdoucí stejné hodnoty (.equals()) |
| Případ použití | Události, datové toky | Stav UI nebo jiné aktuální stavy |