9. diel - Sledovanie zmien hodnôt pomocou StateFlow u coroutines v Kotline
V minulej lekcii, Prenos dát coroutines pomocou kanálov v Kotlin , som sa naučili používať
Channel
na komunikáciu medzi coroutines a popísali si jeho
základné typy.
V dnešnom tutoriále venovanom Kotlin
coroutines si predstavíme rozhranie StateFlow
, ktoré
nám umožňuje sledovať zmenu hodnoty vybranej premennej a
reagovať na ňu.
Odovzdávanie informácií o zmenách hodnôt
Predstavme si, že máme v aplikácii premennú
activeUsersCount
, ktorá nám reprezentuje počet
aktívnych používateľov pripojených k nášmu serveru. Následne by sme
chceli byť informovaní, kedykoľvek dôjde k zmene počtu
aktívnych užívateľov a túto informáciu spracovať.
Najprv si ukážeme, ako problém vyriešiť bez využitia
StateFlow
a následne si vytvoríme príklad so
StateFlow
, aby sme videli výhody medzi jednotlivými
prístupmi.
Riešenie bez StateFlow
Pokiaľ StateFlow
nepoznáme, mohlo by nás napadnúť
vyriešiť sledovanie zmien hodnôt pomocou premennej callback
,
ktorej hodnoty by sme ukladali do zoznamu.
Trieda Server
Naša trieda Server
by potom vyzerala takto:
class Server { private val callbacks = mutableListOf<(Int) -> Unit>() fun start() { callbacks.forEach { it.invoke(20) } Thread.sleep(1000) callbacks.forEach { it.invoke(30) } } fun registerCallback(callback: (Int) -> Unit) { callbacks.add(callback) } }
V triede Server
sme vytvorili metódu start()
,
ktorá
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V tutoriále o coroutines v Kotline si ukážeme, ako môžeme pomocou StateFlow sledovať zmeny hodnôt premennej a ako ukončiť získavanie týchto informácií.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.