Sobes.tech
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.