2013-07-14 21 views
10

Próbuję ustawić priorytet moich żądań za pomocą biblioteki Volley w systemie Android. Nie mogę dowiedzieć się, jak ustawić priorytet wniosków.Ustawienie Żądanie Priorytet Volley

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

Jakieś pomysły na to, w jaki sposób mogę to zrobić?

Odpowiedz

13

Biblioteka niestety nie jest jeszcze w pełni opracowana. Aby ustawić priorytet żądania, należy rozszerzyć żądanie i zastąpić getPriority(). Dla twojego przykładu utworzyłbym nową klasę, która rozszerza StringRequest i implementuje funkcję getPriority() (i może również setPriority(), dzięki czemu możesz programowo zmieniać priorytety w różnych żądaniach).

private Priority mPriority = Priority.LOW; 

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

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

Priority jest ENUM z klasy Request.

+1

Okazuje się imagerequest ma Priority.LOW już ustawiona, ale odpowiesz prace. Dzięki. – TwistedEquations

+0

Tak, obiekt ImageRequest już go ma, ale StringRequest go nie ma, a klasa Żądanie nie udostępnia metody ręcznego ustawiania. Salwa działa tak jak jest, ale jeśli chcesz ją dostosować do własnych potrzeb, wciąż wymagane są niestandardowe klasy. – Flynn81

+0

Volley obsługuje cztery poziomy priorytetu - niski, normalny, wysoki i natychmiastowy. – v01d

7

Herezje szybki sposób ustawić priorytet,

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

Dziękuję, jest to o wiele lepszy sposób robienia prostych rzeczy, takich jak zmiana priorytetu. – LNI

+0

to ustawi priorytet również jestem trochę zdezorientowany czy możesz wyjaśnić proszę .. – Anandhu