Le réseau et le hors-ligne
Appels réseau hors du fil principal, délais d'expiration et nouvelles tentatives, puis le hors-ligne d'abord : la base locale comme source de vérité, la file d'écritures en attente, la synchronisation et les conflits.
- 30 cartes
- 7 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Les chiffres
- Sur le schéma
- Les étapes
- Mises en situation
- Comprendre
Quelques cartes du deck
Hors-ligne d'abord : de quoi s'agit-il ?
Voir la réponse
Façon de concevoir l'application où l'écran lit et écrit toujours dans la base du téléphone, le réseau n'intervenant qu'à part, pour échanger avec le serveur.
L'application reste utilisable dans le métro ou en avion : une panne de réseau retarde la mise à jour des données, elle ne bloque plus l'écran.
Quelle exception ce code déclenche-t-il quand l'utilisateur touche le bouton ?
```kotlin
button.setOnClickListener {
val texte = URL("https://api.exemple.fr/notes").readText()
liste.text = texte
}`android.os.NetworkOnMainThreadExceptionjava.net.SocketTimeoutExceptionjava.lang.SecurityExceptionjava.io.FileNotFoundException
Voir la réponse
android.os.NetworkOnMainThreadExceptionLe gestionnaire du clic s'exécute sur le fil principal, où Android interdit les accès réseau. Il faut lancer l'appel dans une coroutine ou un autre fil, puis mettre à jour l'écran au retour.
Un appel réseau ne s'exécute jamais sur le …, sinon l'écran gèle et, après environ … secondes, le système affiche « l'application ne répond plus ».
Voir la réponse
Un appel réseau ne s'exécute jamais sur le fil principal, sinon l'écran gèle et, après environ 5 secondes, le système affiche « l'application ne répond plus ».
On confie l'appel à un autre fil (coroutine, exécuteur) et on revient au fil principal pour afficher le résultat.
Source de vérité : de quoi s'agit-il ?
Voir la réponse
Unique endroit de l'application où les données font foi, et que tous les écrans lisent.
Dans une application hors-ligne d'abord, c'est la base locale : la réponse de l'API y est écrite, l'écran ne l'affiche jamais directement.