IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Comment implémenter une attente de réponse pour une requête à un webservice?


Sujet :

Android

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Comment implémenter une attente de réponse pour une requête à un webservice?
    Bonjour,

    Je dois faire une requête, jusqu'à attendre une réponse d'un serveur.
    Si au bout de 30 secs, je n'ai toujours pas de réponse je considère que la réponse est négative sinon si j'ai une réponse positive je sors de ma boucle.

    Je pense que je dois implémenter un thread pour ne pas bloquer la vue de l'utilisateur.

    N'étant pas familier avec les threads je n'ai pas réussis à un implémenter un correctement. Donc si quelqu'un pouvait me donner un coup de pouce

    Voici ma méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    private void getConnexionResponse() {
    		Log.d(TAG, "askConnexion");
    		GetConnexionResponse gcr = new GetConnexionResponse();
    		gcr.userTI = infosSession.idUser;
    		int timeOut= 30;
    		while(timeOut == 0){
    			 try {
    				Thread.sleep(5000);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    		String result = webService.GetConnexionResponse(gcr);
    		if(result.equals("1"))
    			break;
    		timeOut -= 5;
    		}
    }
    Drlord.

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Je te conseil plus d'utiliser des AsyncTask, qui sont plus facile à utiliser que les Thread.

    Sinon, dans ton bout de code, tu fais 30 tentatives en endormant pour 5 secondes, donc 150 secondes d'attentes => 2'30 au lieu de 0'30.

    Si tu veux implémenter le tout dans un thread, il faut que tu mettes le code à l'intérieur de celui-ci.
    Une manière de le faire peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Thread monThread = new Thread()
    {
    	@Override
    	public void run()
    		{
    			// ton code ici
    		}
    };
     
    monThread.start();
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Merci pour la réponse.

    Drlord.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  2. Comment optimiser les temps de réponse d'une requête ?
    Par renaudjuif dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/02/2007, 14h12
  3. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 11h59
  4. comment afficher cursor: hand sous FF pour une image?
    Par Death83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/09/2005, 08h48
  5. implémenter la notion "au moins" pour une liste d'
    Par mohamed dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 18/08/2004, 00h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo