Comment Android Volley gérer temporairement la perte de la connexion réseau?
Si un Android Volley requête post échoue en raison de la perte de réseau, sera Android Volley réessayer la poste après que la connexion réseau est rétablie automatiquement? Il incendie l'ensemble de la demande des tentatives, attendez que la connexion soit rétablie ou simplement déclencher une erreur et arrêter?
Si Android Volley ne pas recommencer après une connexion est rétablie, il semble que je vais avoir à créer de la logique de sorte que j'ai une file d'attente pour chaque fois que la connexion est perdue, et qui va réessayer chaque fois que des modifications d'état de connexion.
OriginalL'auteur Bart Burg | 2014-02-07
Vous devez vous connecter pour publier un commentaire.
Non, il ne sera pas. Je pourrait même ne pas être désirée en fonction de votre application.
Simplement, il renvoie une erreur. Et oui, vous devriez écrire ce genre de logique vous-même.
OriginalL'auteur Androiderson
Comme par cette lien:
Il n'y a aucun moyen direct pour spécifier le délai d'attente de demande de la valeur de reprise de Volée, mais il existe une solution de contournement, vous devez définir un RetryPolicy sur l'objet de la requête. Le DefaultRetryPolicy classe prend un argument appelé initialTimeout, cela peut être utilisé pour spécifier un délai d'attente de demande, assurez-vous que le nombre maximal de tentatives est de 1, de sorte que le volley n'est pas réessayer la demande après le délai a été dépassé.
Si vous voulez réessayer les demandes ayant échoué (en raison de délai d'attente), vous pouvez spécifier que trop à l'aide du code ci-dessus, il suffit d'augmenter le nombre de répétitions. Notez que le dernier argument, il vous permet de spécifier un intervalle de multiplicateur, qui peut être utilisé pour mettre en œuvre “l'intervalle exponentielle” que certains services RESTful recommander.
Le lien a beaucoup de conseils utiles et astuces pour l'utilisation de Volley. Espérons que cette aide!
Avez-vous essayer de toucher un autre serveur pour voir si le problème est côté serveur?
Le serveur est un serveur dédié pour tester cette fonctionnalité ;). Donc, fondamentalement, il envoie un presque vide de répondre à chaque requête post, rien de compliqué
Juste assez. Si cela fonctionne dans un navigateur, vous ne devriez pas avoir de problèmes sur les mobiles. De toute façon, vous avez mentionné que vous obtenez cette erreur avant même que la demande est envoyé. Peut-être que votre demande ou requestQueue. Aussi, vous avez dit que vous êtes seulement obtenir cette erreur une fois...que voulez-vous dire par là?
Je veux dire a envoyé des demandes. Ce que je fais pour imiter la logique métier est de prendre un petit délai d'attente avant la réponse est à retourner. Je suis en train de créer une situation où j'ai envoyer une demande, la demande atteint le serveur, mais la connexion est perdue avant une réponse revint. Je suis en train de créer un réseau de perte de la preuve de processus de l'envoi des demandes
OriginalL'auteur The Hungry Androider
Dans le cas d'une IOException s'affiche (par exemple, java.net.ConnectException), Volley ne pas utiliser la nouvelle tentative de la politique.
Volley utilise seulement les tentatives de la politique en cas de SocketTimeoutException, ConnectTimeoutException ou si le code de réponse HTTP est 401 (interdit) ou 302 (redirection permanente).
OriginalL'auteur funcoder
si vous utilisez (AsyncHttpClient) vous pouvez essayer d'appeler cette methode :
OriginalL'auteur Amer Al Ziebak