Junior — Middle
Comment assurer l'exécution des opérations de manière à ne pas bloquer l'interface utilisateur?
sobes.tech IA
Réponse de l'IA
Pour que les opérations ne bloquent pas l'interface utilisateur sur Android, il faut les exécuter dans un thread en arrière-plan, pas dans le thread principal (UI). Pour cela, on peut utiliser :
- AsyncTask (obsolète, mais encore présent dans le code ancien)
- HandlerThread ou Handler
- ExecutorService
- Coroutines Kotlin (méthode moderne et recommandée)
- RxJava
Par exemple, avec des coroutines, on peut faire ainsi :
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Opération longue, par exemple une requête réseau
fetchData()
}
// Mise à jour de l'UI avec le résultat
textView.text = result
}
Ainsi, le travail lourd s'effectue dans un thread en arrière-plan (IO), et la mise à jour de l'interface se fait dans le thread principal.