2011-07-16 6 views
0

Je crée un formulaire de connexion. Lorsque l'utilisateur se connecte, cela mène à la page d'accueil. Je crée une activité qui a un AsyncTask. Voici la partie pertinente de mon code:Erreur lors de la création d'un AsyncTask

public class iniTask extends AsyncTask<String, Void, String> { 
    private ProgressDialog Dialog = new ProgressDialog(GPSTracerActivity.this); 

    protected void onPreExecute() { 
     Dialog.setMessage("Connect to server..."); 
     Dialog.show(); 
    } 

    protected String doInBackground(String... url_req) { 
     String url = url_req[0]; 
     try { 
      Log.v("doing background", executeHttpGet(url)); 
      return executeHttpGet(url); 
     } catch(Exception e) { 
      Log.v("Exception doing background","Exception:"+e.getMessage()); 
      return ""; 
     } 
    } 

    protected void onPostExecute(String result) { 
     try { 
          Dialog.dismiss(); 
         // here when thing go wrong 
       startNewAction(result);  


     } catch(Exception e) { 
      Log.v("Exception process response","Exception:"+e.getMessage()); 
     } 
    } 
} 

est ici startNewAction(result):

public void startNewAction(String result){ 
    if (result.substring(0, 6) == "300 OK"){ 
     Intent i = new Intent(GPSTracerActivity.this, Home.class); 
     startActivity(i); 
    } 
} 

La tâche démarre correctement, mais quand je l'appelle startNewAction(result), il ne remet pas une nouvelle activité. Pourquoi?

NOTE: quand j'active si structure pour tester la chaîne == 300 OK, ça ne marche pas! pourquoi

Je vois cela dans logcat:

07-16 14:57:23.345: WARN/InputManagerService(37): Window already focused, ignoring focus gain of: [email protected] 
+0

Avez-vous vérifié que le résultat est correct? (c'est-à-dire "300 OK") Aussi il semble un peu inutile que votre méthode onPostExecute ne fasse rien d'autre qu'une autre méthode, pourquoi ne pas y mettre votre logique - d'autant plus que ce n'est que 3 lignes de code! – Kenny

+0

Thx Je l'ai déjà fait mais il ne fonctionne pas Il n'a pas appelé l'activité d'intention qu'il affiche comme ci-dessus, mais je l'essaie d'une autre façon par appel de méthode. Le problème se produire apparaît lorsque je tente de mettre si structure si je ne l'utilise pas si elle va montrer une autre intention, une idée? – sayvortana

+0

Vous ne savez pas exactement quel est votre problème, l'erreur que vous avez publiée provient des classes de structure pour l'interaction entre les vues et les méthodes de saisie (telles que les claviers logiciels). Utilisez-vous la saisie au clavier dans l'activité que vous essayez d'ouvrir? – Kenny

Répondre

0

Dans votre onPostExecute quitter le dialogue en premier.

Dialog.dismiss(); 
+0

oh désolé dans mon code je rejette déjà la boîte de dialogue n'a tout simplement pas mis en question ci-dessus – sayvortana

0

Je viens de trouver la solution, il y a une erreur à cause de la façon dont je compare la chaîne,

Il devrait être,

 if (result.substring(0, 6).equals("300 OK")){ 
       Intent i = new Intent(GPSTracerActivity.this, Home.class); 
       startActivity(i);    
     } 

Quoi qu'il en soit, Merci pour les idées !!!