5 votes

Quel est le meilleur moyen de gérer l'absence de connexion Internet dans une application Android ?

Je travaille dans le développement Android depuis plus de 4 ans et dans tous les projets auxquels j'ai participé, les gens m'ont toujours demandé quelle est la meilleure façon de gérer le cas d'utilisation Aucune connexion Internet. Vérifier cela peut se faire de plusieurs manières, mais j'essaie toujours de décider quelle pourrait être la meilleure expérience utilisateur.

Une idée pourrait consister à avoir un observateur pour vérifier la connexion Internet et à chaque fois qu'elle est perdue, afficher une activité sur votre écran actuel afin d'informer l'utilisateur qu'il a perdu la connexion. Lorsque Internet est de retour, il suffit d'appeler finish sur cette activité. Mais cela bloque toute interaction avec l'application.

Une autre option consisterait à personnaliser chaque écran de votre application pour afficher une mise en page personnalisée en cas de non-connexion. Mais cela peut vous coûter beaucoup de travail si vous avez plus de 20 écrans.

Quelle est, selon vous, la meilleure façon de gérer l'absence de connexion Internet dans une application Android?

4voto

Taseer Points 3143

Selon material.io, vous pouvez afficher un cardview avec vos vues souhaitées pour informer l'utilisateur de l'état actuel du réseau. De cette manière, un utilisateur n'est pas bloqué dans l'interaction avec l'application. entrez la description de l'image ici

4voto

a_local_nobody Points 6265

Il n'y a pas de "meilleure façon" de gérer l'absence de connexion Internet. Cela dépend de différents aspects et cela devrait relever de votre designer et/ou de vos règles commerciales.

Considérez ceci :

  1. Si vous développez une application pour suivre en direct la localisation des utilisateurs afin de fournir un service d'urgence en cas de problème (vérifier s'ils ont eu un accident de voiture, etc.) alors la connexion devient exponentiellement plus importante. Ici, vous voulez certainement informer l'utilisateur qu'il n'y a pas de connexion, vous allez probablement bloquer l'interface utilisateur jusqu'à ce qu'ils soient à nouveau connectés ou vous devrez fournir une fonctionnalité limitée, etc.
  2. Si vous travaillez sur une application qui vous donne occasionnellement (une fois par heure, deux heures, etc.) plus d'informations (comme une application météo) la connectivité Internet est-elle vraiment SI importante ? Vous pouvez afficher des boîtes de dialogue ou des tentatives de reconnexion ou simplement afficher les dernières données que vous aviez disponibles, mais ce n'est vraiment pas d'une importance vitale (pour une application météo moyenne) d'obtenir des données en direct à chaque utilisation (encore une fois, cela dépend de la situation, cela pourrait l'être)

Il n'y a pas de solution unique pour tous les scénarios. La perte de connectivité n'est pas AUSSI FATALE ou importante pour toutes les applications et c'est pourquoi cette question est trop large.

2voto

Zohaib Amir Points 3088

Je dirais Snackbar. Cela semble bien, ne bloque pas l'interface utilisateur, fournit des actions (contrairement à Toast) qui ne sont pas imposées à l'utilisateur (contrairement à Activity et Dialog) et ne nécessite qu'une seule ligne de code. Aussi simple que ça.

Activity - Mauvaise option, bloque l'interface utilisateur, nécessite une entrée de l'utilisateur, peut être ennuyeuse, avec du code superflu
Toast - Paraît "satisfaisant" mais ne permet pas de spécifier des actions
Dialog - Rend l'action de l'utilisateur obligatoire pour le fermer, ne paraît pas aussi bien

Pour le Snackbar, il n'y a qu'un seul inconvénient auquel je peux penser, il fonctionne mieux avec CoordinatorLayout, en déplaçant la mise en page vers le haut au lieu de la chevaucher. À part ça, il remplit les critères.

TYPE_APPLICATION_OVERLAY (d'après mon expérience)

1voto

Thrishool MSM Points 297

En réalité, j'ai implémenté cette fonctionnalité sans utiliser d'activité supplémentaire, de toast ou de dialogue. Voici l'idée : en fait, je récupère des données du serveur et les affiche dans le listView. S'il n'y a pas d'Internet, je montrerais à l'utilisateur ce qui suit. entrez la description de l'image ici

S'il y a Internet, j'afficherais les données comme suit entrez la description de l'image ici

Alors, comment l'ai-je fait ? Utilisez simplement le concept de visibilité. Tout d'abord, par défaut, j'ai rendu la visibilité du listView invisible et celle de l'image et du texte d'Internet visible en dessous. S'il y a Internet, je change simplement la visibilité de l'image et du texte en invisible et celle du listView en visible. Faites cela selon vos besoins. Des doutes ? N'hésitez pas à commenter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X