2013-07-17 72 views
12

目前我保持一個靜態的凌空請求隊列如下所述:應該維護多少排氣式排隊隊列?

Instantiating core Volley objects

private static RequestQueue mReqQueue; 

如果有一個和每個應用程序只有一個靜態的請求隊列?有多於一個的危害是什麼?例如,如果我想要一個請求隊列來處理Twitter請求,該怎麼辦。另一個用於認證,圖像檢索等其他一切。

回答

11

我認爲Ficus Kirkpatrick在his presentation on Volley的某處說最好只有一個RequestQueue

如果你的大部分活動,服務和接收者都使用了Volley,並且你在它們之間做了很多切換,那麼在Application對象中定義一個單身人士RequestQueue是很有意義的,這樣你就不必實例化新的RequestQueue在每個acticity /服務/接收器onCreate。但是,如果你有很多活動,並且在一個請求中只使用Volley中的一個,那麼你可能會更好地定義RequestQueue,或者在Activity中定義RequestQueue,或者它會在你不使用它。這不應該傷害功能,但可能會傷害記憶方面。


編輯:

在凌空用戶羣,榕說:

RequestQueues相當便宜(大多隻是線程)。我們在應用程序中使用了多個分隔緩存。

這告訴我們,如果您需要單獨的緩存,則使用多個RequestQueues也是有效的用例。

+1

但是如果您切換到另一個活動,並且想要暫停先前活動中的請求,請先加載新的請求? – virsir

+1

這是違反活動應該做的事情。如果您希望能夠取消跨活動的正在進行的下載,則應該在['Service'](http://developer.android.com/reference/android/app/Service.html)中執行下載。 – Maarten