Junior — Middle
Le thread principal peut-il effectuer des requêtes réseau sans provoquer de blocages ou de problèmes de performance?
sobes.tech IA
Réponse de l'IA
Sur Android, le thread principal (UI) ne doit pas effectuer directement des requêtes réseau, car cela entraîne des blocages de l'interface et une dégradation des performances de l'application. Les opérations réseau peuvent prendre un temps considérable, et si elles sont effectuées sur le thread principal, l'application cessera de répondre aux actions de l'utilisateur.
Pour éviter ces blocages, on utilise :
- Tâches asynchrones (AsyncTask, bien que désormais obsolètes)
- Threads (Thread, HandlerThread)
- Bibliothèques supportant l'asynchronie (par exemple, Retrofit avec Coroutines)
- Kotlin Coroutines ou RxJava
Exemple avec Kotlin Coroutines :
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Exécuter la requête réseau en arrière-plan
fetchDataFromNetwork()
}
// Mettre à jour l'UI avec le résultat
updateUI(result)
}
Ainsi, le thread principal n'est pas bloqué et l'application reste réactive.