Junior — Middle
Kokiais metodais ir įrankiais Android galima įgyvendinti užduočių vykdymą asinchroniškai?
sobes.tech AI
Atsakymas iš AI
Android galima naudoti keletą metodų ir įrankių asinchroniniam užduočių vykdymui:
- AsyncTask (pasenęs, bet vis dar dažnai randamas senajame kode) — leidžia vykdyti operacijas foniniame sraute su UI atnaujinimu.
- Handler ir HandlerThread — valdyti žinučių eilutes ir vykdyti užduotis atskiruose srautuose.
- Executor ir ThreadPoolExecutor — valdyti srauto baseiną.
- RxJava — reaktyvaus programavimo biblioteka, naudinga asinchroninėms operacijoms.
- Coroutines (Korutinos) — šiuolaikinis ir rekomenduojamas būdas asinchroniniam programavimui Kotlin.
- WorkManager — vėluojančioms ir periodinėms užduotims, kurios turi būti vykdomos net ir uždarius programą.
Korutinos pavyzdys asinchroninei užduočiai:
import kotlinx.coroutines.*
fun fetchData() {
GlobalScope.launch(Dispatchers.Main) {
val data = withContext(Dispatchers.IO) {
// Ilga operacija, pvz., tinklo užklausa
loadDataFromNetwork()
}
// UI atnaujinimas gautais duomenimis
updateUI(data)
}
}