2011-02-14 3 views
0

J'ai ce code (joint) qui fonctionne parfaitement sur tous les AVD que je crée avec eclipse. Il appelle un fichier php sur un site Web. Le script php classe le fichier xxx lorsque l'appel http://somebody.me.uk/testingphp/signup.php?user=xxx est effectué. Le script php ne donne pas de réponse et je n'en veux pas, le truc dans la boucle du code ci-dessous est ce que je veux capturer dans le fichier php. Dans le monde réel, un téléphone Nexus One avec ce code ne parvient pas à contacter le script PHP. En essayant de résoudre le problème, j'ai inséré des lignes de code créant des toasts entre les lignes de code dans le bloc try. Soudain, l'application commence à travailler et les fichiers php le xxx. Je présume que cela est dû à l'introduction d'un retard sur le lien alors qu'il montre les toasts, et donne la chance aux communications de fonctionner. Toutes les idées pour résoudre le problème (sans utiliser de toasts) Merci.comment attendre que l'appel URL soit complet

private boolean hasSolution(){ 
     if (cells.solve()) {     
      // send to web site for QA analysis. 
      String urlString = "http://somebody.me.uk/testingphp/signup.php?user=" ; 
      for (int j=0; j<9; j++) { 
       for (int i=0; i<9; i++) { 
        urlString += cells.getSolution(i, j); 
       }// end for i 
      }// end for j 
    try { 
       URL url = new URL(urlString); 
       URLConnection conn = url.openConnection();     
       BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
       rd.close(); 
      }catch (IOException e) {Toast.makeText(app.this, "io error", Toast.LENGTH_SHORT).show();} 

      return true; 
     }// end if 
     return false; 
    } 

Répondre

2

// définir cette variable dans deux votre activité

private ProgressDialog pDialog = null; 
private Runnable submittingScore; 


submittingScore = new Runnable(){ 
@Override 
public void run() 
{ 
try { 
     do your task here 
    } 

catch (Exception e) { 
pDialog.dismiss(); 
// TODO Auto-generated catch block 
            e.printStackTrace(); 
    } 
    } 

}; 


Thread thread = new Thread(null, submittingScore, "MultibreifsBackground"); 
    thread.start(); 
pDialog = ProgressDialog.show(postServer.this,  
"Please wait...", "Submitting Scores...", true); 

Mettre le pDialog.dismiss dans toutes les méthodes de capture. Maintenant, quand vous appelez l'URL, il affichera le traitement jusqu'à ce que l'URL soit complète.

+0

J'ai commencé à travailler. Thankyou Amit – DMW

+0

Bienvenue mais si ce code vous est utile alors cliquez sur le bouton ci-dessus de 0. qui se trouve sur le côté gauche de ma réponse. –

Questions connexes