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
Došiel 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ť.