2017-08-09 2 views
0

Je voudrais savoir s'il est possible d'arrêter l'exécution du code dans un responseReceived d'un exemple de requête http:exécution d'arrêt Android d'une requête http

new HttpRequest() { 
     @Override 
     public void onResponseReceived(JSONObject result) { 
     // doing a lot of thing 
     } 
}.get("http://niceUrl"); 

A l'intérieur du onResponseReceived que je fais beaucoup de chose (analyser JSON, ajouter des données à la liste, etc ..)

Quand je vous appelle cette fonction:

private void stopExecutionOfOnResponseReceived(){ 
    // I would like to stop the previous HttpRequest and launch a new One 
} 

Le HttpRequest est une classe abstraite qui étend étend AsyncTask String, Voi d, JSONObject

+0

classe AsyncTask a 'méthode cancel()' vérifier que –

+0

Si vous pouvez appeler la méthode annuler, vous ne pouvez pas l'arrêter. – redAllocator

Répondre

1

Vous pouvez utiliser pour abandonner la méthode. Cet exemple montre comment abandonner une méthode HTTP avant son achèvement normal.

public class ClientAbortMethod { 

    public final static void main(String[] args) throws Exception { 
     CloseableHttpClient httpclient = HttpClients.createDefault(); 
     try { 
      HttpGet httpget = new HttpGet("http://httpbin.org/get"); 

      System.out.println("Executing request " + httpget.getURI()); 
      CloseableHttpResponse response = httpclient.execute(httpget); 
      try { 
       System.out.println("----------------------------------------"); 
       System.out.println(response.getStatusLine()); 
       // Do not feel like reading the response body 
       // Call abort on the request object 
       httpget.abort(); 
      } finally { 
       response.close(); 
      } 
     } finally { 
      httpclient.close(); 
     } 
    } 

} 
+0

Je ne sais pas si c'est utile car j'utilise HttpUrlConnection pour la requête – Vodet