2013-07-17 11 views
12

Attualmente sto mantenendo una coda di richieste Volley statico come descritto qui:Quante code di richieste Volley dovrebbero essere mantenute?

Instantiating core Volley objects

private static RequestQueue mReqQueue; 

Ci dovrebbe essere una e una sola coda di richieste statica per app? Qual è il danno nell'avere più di uno? per esempio cosa succede se volevo una coda di richiesta solo per elaborare le richieste di Twitter. E un altro per tutto il resto come autenticazione, recupero di immagini ecc.

risposta

11

Penso che Ficus Kirkpatrick abbia detto da qualche parte in his presentation on Volley che in modo ottimale, c'è solo uno RequestQueue.

Se la maggior parte delle attività, servizi e ricevitori fanno uso di Volley, e si fa un sacco di passare tra di loro, ha senso per definire un Singleton RequestQueue nella vostra Application oggetto in modo che non si dispone di creare un'istanza di un nuovo RequestQueue in ogni articolo/servizio/ricevitore onCreate.

Tuttavia, se avete un sacco di attività, e di utilizzare Volley in solo uno di loro per una richiesta, allora si potrebbe essere meglio definire il RequestQueue proprio in questo Activity, o otterrà un'istanza alle attività in che non lo usi Ciò non dovrebbe compromettere la funzionalità, ma potrebbe danneggiare la memoria.


EDIT:

Nel gruppo utente volley, Ficus detto:

RequestQueues sono piuttosto economico (per lo più solo thread). Usiamo più di una nella nostra app per separare le cache.

che ci dice che è anche un caso d'uso valida per utilizzare più RequestQueues se è necessario disporre di cache separate.

+1

Ma cosa succede se si passa a un'altra attività e si desidera sospendere la richiesta nell'attività precedente, caricare prima la nuova richiesta? – virsir

+1

Questa è una violazione di ciò che un'attività dovrebbe fare. Se si desidera poter annullare un download in corso su Attività, è necessario eseguire il download in un ['Servizio'] (http://developer.android.com/reference/android/app/Service.html). – Maarten

Problemi correlati