2013-07-14 4 views
10

J'essaie de définir la priorité de mes demandes en utilisant la bibliothèque Volley dans Android. Je ne peux pas savoir comment définir la priorité des demandes.Paramètre Demande Volley prioritaire

StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener); 
pe.requestQueue.add(request); 

Toutes les idées sur comment je ferais cela?

Répondre

13

La bibliothèque n'est malheureusement pas encore complètement étoffée. Pour définir la priorité d'une requête, vous devez étendre la requête et remplacer getPriority(). Pour votre exemple, je créerais une nouvelle classe qui étend StringRequest et implémente getPriority() (et peut-être aussi setPriority(), ainsi vous pouvez modifier par programme les priorités dans différentes requêtes).

private Priority mPriority = Priority.LOW; 

@Override 
public Priority getPriority() { 
    return mPriority; 
} 

public void setPriority(Priority priority) { 
    mPriority = priority; 
} 

Priority est un ENUM de la classe Request.

+1

Il s'avère imagerequest a déjà mis Priority.LOW mais vous répondre à des œuvres. Merci. – TwistedEquations

+0

Oui, ImageRequest l'a déjà, mais pas StringRequest, et la classe Request ne fournit pas de méthode pour le définir manuellement. Volley fonctionne bien tel quel, mais si vous voulez l'adapter à vos propres utilisations, des classes personnalisées sont toujours nécessaires. – Flynn81

+0

Volley prend en charge quatre niveaux de priorité: faible, normal, élevé et immédiat. – v01d

7

Heres un moyen rapide de définir une priorité,

StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener) { 
     @Override 
     public Priority getPriority() { 
      return Priority.IMMEDIATE; 
     } 
    }; 
+0

Merci, c'est une bien meilleure façon de faire une chose simple comme changer la priorité. – LNI

+0

est ce sera la priorité aussi je suis un peu confus pouvez-vous clarifier s'il vous plaît .. – Anandhu