tgoop.com/android_live/590
Last Update:
ββΠΠΈΠ³ΡΠ°ΡΠΈΡ Ρ LiveData Π½Π° StateFlow
#livedata #flow #jetpack LiveData
β ΠΊΠ»Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ Π΄ΡΠΌΠ°Ρ ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ½ ΡΠ΄ΠΎΠ±Π΅Π½, Π½ΠΎ Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
πΉΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ²ΡΡΠ΄Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
, Π³Π΄Π΅ Π΅Π³ΠΎ Π³Π»Π°Π²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Android, Π° Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π½Π°ΡΡ;
πΉΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ setValue()
ΠΈ postValue()
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠ°. Π Π²Π°ΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΈΡ
Π²ΡΠ·ΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ²Π° setValue()
Π½Π΅ ΠΈΠ· UI-ΠΏΠΎΡΠΎΠΊΠ°, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Exception, Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ postValue()
ΠΏΠΎ Π²ΡΠ΅Ρ
ΡΠ»ΡΡΠ°ΡΡ
Π³ΡΠΎΠ·ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. ΠΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΡΡΡ.
πΉΠ΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ΅Π½ΡΡΠ°Ρ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π»ΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΡΠ½ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
πΉΠ½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ KMM.
ΠΠ»Π°ΡΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ StateFlow
. ΠΠ½ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ KMM ΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡ.
Π― ΡΠΆΠ΅ Π½Π°ΡΠ°Π» ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° StateFlow
ΠΈ ΠΎΡΠΌΠ΅ΡΡ ΠΏΠ°ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²:
πΈΠ½Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΠΏΠ° lifecycleScope.launchWhenResumed()
Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ.
πΈΠ²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ LiveData
. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ: Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅Ρ β ΡΠΊΠ°Π·Π°ΡΡ null
, Π° ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π½Π° Β«Π½Π΅ nullΒ». ΠΡΠΎΡΡΠΎ ΠΎΠ΄ΠΈΠ½ Π»ΠΈΡΠ½ΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ filterNotNull()
.
Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ β ΡΠΈΠΊΠ°ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ. ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ Π³Π°Π΄ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΡΡ.
Π Π²Ρ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΅Ρ
Π°Π»ΠΈ Π½Π° Flow? ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ?
BY Android Live π€

Share with your friend now:
tgoop.com/android_live/590