Sobes.tech
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