2012-11-20 1 views
1

J'ai une démo simple pour RoboSpice en cours d'exécution.RoboSpice RequestProgress est mis à jour, mais requestSuccess n'est pas appelé

C'est le service par défaut qui étend SpringAndroidContentService, comme trouvé sur leur github. La chose étrange est, quand j'envoie une demande, le Progress est mis à jour, mais je ne reçois finalement pas l'appel à onRequestSuccess, qui est un simple Toast.

j'ai vérifié LogCat, et il ne fait pas exception. Voici le code pertinent:

/* RestContentRequest overrider */ 
@Override 
public String loadDataFromNetwork() throws Exception { 
    RestTemplate restTemplate = getRestTemplate(); 
    try { 
     String response= restTemplate.getForObject(
      "http://xxx.xxx/mobile.html", String.class); 
     //does not get called 
     Log.d(LOGTAG, response); 
     return response; 
    } catch (HttpClientErrorException e) { 
     //Does not get called 
     Log.e(LOGTAG, e.toString()); 
     return e.getLocalizedMessage(); 
    } 
} 

private class RequestListener implements RequestListener<String>, RequestProgressListener { 

    @Override 
    public void onRequestFailure(SpiceException exception) { 
     //Does not get called 
     debug.setText(exception.getLocalizedMessage()); 
    } 

    @Override 
    public void onRequestSuccess(String response) { 
     //Does not get called 
     Toast.makeText(LoginActivity.this, response, Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onRequestProgressUpdate(RequestProgress progress) { 
      //Gets called 
      debug.setText(convertProgressToString(progress)); 
    } 

    private String convertProgressToString(RequestProgress progress) { 
     String status = ""; 
     switch (progress.getStatus()) { 
      case READING_FROM_CACHE: 
       status = "? cache -->"; 
       break; 
      case LOADING_FROM_NETWORK: 
       status = "^ network ^"; 
       break; 
      case WRITING_TO_CACHE: 
       status = "--> cache"; 
       break; 

      default: 
       status = ""; 
       break; 

     } 
     return status; 
    } 

} 

Quelle est la cause de ceci? Il doit simplement lire une page avec une chaîne. (simple/texte)

Répondre

0

Je ne sais pas quelle version de RoboSpice vous avez essayée, mais cela devrait certainement fonctionner avec RoboSpice. Pourriez-vous essayer? La dernière version stable est 1.3.1.

Et vous avez une question sur RoboSpice Stack Over Flow, s'il vous plaît me notifier ou étiqueter.

+0

J'ai finalement résolu cela en passant des bibliothèques Jackson aux bibliothèques Gson. Je ne sais toujours pas si la question repose dans cette version de RoboSpice, ou les bibliothèques Jackson. Je vais télécharger la dernière version et vous informer. – tolgap

+0

thx @tolgap. Utilisez la page de problème RoboSpice plus que SOF. Mais il était agréable de voir la première question Stack surverse à propos RoboSpice hier;) – Snicolas

Questions connexes