Sobes.tech
Middle+

Čo je SharedFlow a ako sa líši od StateFlow?

sobes.tech AI

Odpoveď od AI

SharedFlow je tok dát z coroutines, ktorý odosiela hodnoty viacerým odberateľom ("horúci" tok).

StateFlow je variácia SharedFlow, ktorá predstavuje tok stavov. Vždy má počiatočnú hodnotu a odosiela poslednú známe hodnotu novým odberateľom.

Hlavné rozdiely:

Charakteristika SharedFlow StateFlow
Počiatočná hodnota Nemá predvolenú, môže nastaviť replay Vždy má povinnú počiatočnú hodnotu
Opakovanie hodnôt pre nové odberateľov Riadi sa parametrom replay Vždy opakuje poslednú hodnotu
Veľkosť bufferu Veľkosť bufferu je nastavená parametrom extraBufferCapacity Veľkosť bufferu je 0 (okrem poslednej hodnoty)
Vysielanie rovnakých hodnôt Vysiela všetky hodnoty, aj keď sú rovnaké Nevysiela po sebe idúce rovnaké hodnoty (.equals())
Prípad použitia Udalosti, dátové toky Stav UI alebo iné aktuálne stavy