我正在使用來自web服務的數據填充無限列表視圖。數據是作爲對從應用程序發出的POST請求的響應而獲得的。緩存這些數據的最佳做法是什麼,以便每當用戶在列表中上下滾動時都不會進行網絡呼叫? 謝謝!本地緩存Web服務響應的最佳實踐
1
A
回答
3
查看LruCache課程,或者更好地查看Google開發的Android Volley框架。
0
爲了做到這一點,我在網絡請求層添加了一個緩存方案,以使緩存對API調用方透明。緩存每x分鐘過期一次。緩存持續使用SharedPreferences
,以便在應用程序重新啓動時可用。例如,API調用可能是:
List<Item> items = server.getListItems(int page);
內getListItems()你檢查高速緩存,看看是否有一個有效的緩存。如果是這樣,則返回緩存中的項目,否則將進行網絡調用。
實際上,API是一個有點複雜,因爲它支持立即返回一個過期的緩存,然後做網絡調用和更新時,新的結果回來:
server.getListItems(int page, new ResultListener<List<Item>>() {
public void onResult(List<Item> items) {
...
}
});
在這個方案中,當緩存過期的onResult()會被調用兩次 - 一次是過期的緩存,一次是新的結果。
祝你好運!
+0
我列出了這個想法。你能否詳細解釋一下你的架構,並提供更多的僞代碼 –
0
嘗試Picasso。另一個強大的圖像庫,用於從廣場下載圖像和緩存。 它爲您做了一切有關緩存的事情。但是,如果您仍然使用LruCache,請考慮爲您的應用程序分配一定量的內存。否則你的應用程序將導致記憶擊中。
相關問題
- 1. JSON來自Web服務的響應 - 最佳實踐問題
- 2. 創建Web服務的最佳實踐
- 3. 安全web服務的最佳實踐
- 4. 內部web服務的最佳實踐
- 5. Web應用暫存服務器的最佳實踐(預算中)
- 6. 緩存 - 最佳實踐
- 7. 緩存最佳實踐
- 8. Web服務器最佳實踐
- 9. web服務授權最佳實踐
- 10. 最佳實踐:對Web服務
- 11. 創建web服務最佳實踐?
- 12. 最佳實踐服務器端腳本或Web服務
- 13. 本地化web api odata最佳實踐?
- 14. 緩存實施的最佳實踐
- 15. 實現緩存的最佳實踐
- 16. 使用Azure AppFabric緩存服務的最佳實踐?
- 17. OSGi服務 - 最佳實踐
- 18. 最佳實踐:AmazonS3服務
- 19. 本地數據庫緩存的最佳實踐?
- 20. 存儲跨域Web服務訪問憑證的最佳實踐?
- 21. 本地化最佳實踐
- 22. 本地化最佳實踐
- 23. xml服務響應錯誤處理的最佳實踐
- 24. ASP.NET Web應用程序本地化的最佳實踐
- 25. 緩存管理的最佳實踐
- 26. 最佳實踐來存儲Web服務密碼
- 27. 關閉Web服務響應的緩存
- 28. AngularJS 2本地化服務的最佳實踐
- 29. 實施可靠的Web服務最佳實踐?
- 30. 什麼是實例化Web服務的最佳實踐
你會有任何示例顯示高速緩存使用情況。例如,如何設置緩存大小。我們如何強制請求不使用緩存? –