Myślę, że Ficus Kirkpatrick powiedział gdzieś w his presentation on Volley, że optymalnie jest tylko jeden RequestQueue
.
Jeśli większość twoich działań, usług i odbiorników korzysta z Volley, a ty wykonujesz wiele przełączeń między nimi, warto zdefiniować singleton RequestQueue
w swoim obiekcie Application
, aby nie było potrzeby tworzenia instancji nowy RequestQueue
w każdej aktywności/usłudze/odbiorniku onCreate
. Jeśli jednak masz dużo zajęć i użyjesz salwy w jednym z nich tylko na jedno żądanie, możesz lepiej zdefiniować RequestQueue
tylko w tym, lub zostanie on utworzony w działaniach w z którego nie korzystasz. Nie powinno to zaszkodzić funkcjonalności, ale może zaszkodzić pamięci.
EDIT:
W grupie użytkowników siatkówki, Ficus powiedział:
RequestQueues są dość tanie (przeważnie właśnie wątków). Używamy więcej niż jednego w naszej aplikacji, aby segregować pamięci podręczne.
Który mówi nam, że jest to również ważny przypadek użycia, aby użyć wielu RequestQueues
, jeśli potrzebujesz osobnych pamięci podręcznych.
Co się jednak stanie, jeśli przełączysz się na inne działanie i chcesz wstrzymać żądanie w poprzedniej aktywności, najpierw załaduj nowe żądanie? – virsir
Jest to naruszenie czynności, które powinno wykonać działanie. Jeśli chcesz móc anulować trwające pobieranie w ramach działań, pobierz plik w ['Service'] (http://developer.android.com/reference/android/app/Service.html). – Maarten