2011-12-19 29 views
8

我需要緩存http響應,並基於此blog post該功能內置到ICS中。但是,我需要支持版本1.6以上的版本,所以在查看需要回溯ICS功能之前是否已經準備好使用庫。更好的選擇比backporting ICS HttpResponseCache

更新:

下面就來HttpResponseCache鏈接只支持java.net.HttpURLConnection

二更新:

經過一番研究,它看起來像Apache的HttpClient的不支持caching,需要提醒的是默認的(內存)後端可能是不適合內存受限的Android應用程序是個好主意。根據對Android的支持,Ehcache可能是一個不錯的選擇。

回答

11

我創造了這個問題,要求android.net.http.HttpResponseCache的重命名,向後兼容的版本被添加到兼容性庫:https://code.google.com/p/android/issues/detail?id=23875

谷歌拒絕的問題,但表示願意幫助我,使反向移植和圖書館。所以我正在努力做到這一點。

此外,HttpClient緩存可能是一個整潔的東西使用。它在Android上不起作用,您需要進行小的修改並重新編譯它。請參閱http://comments.gmane.org/gmane.comp.apache.httpclient.user/501

但是,我建議您嘗試https://code.google.com/p/httpclientandroidlib/ - 它是Android的HttpClient和HttpClient-Cache的重新打包(重命名)版本。設置起來非常簡單(只需包含一個jar,然後使用ch.boye.httpclientandroidlib。*而不是org.apache.http。*)。

+0

謝謝!我最終在4.1中使用了Apache的CachingHttpClient和基於SQLite的CacheStorage,但如果我早一點知道它的話,它將會與'httpclientandroidlib'一起使用。 – 2012-01-04 23:58:44

7

我已經開始使用candrews向後移植的庫,我很高興地報告說它可以很好地用作使用HttpUrlConnection的ICS之前的Android應用的替代品。它可在https://github.com/candrews/HttpResponseCache

另一個好處是它的API與ICS版本相同,因此您可以啓用ICS中的內置ICE,並使用candrews的backported版本的pre-ICS代碼很少。

+0

我正在拼命尋找一些HttpResponsecache的工作示例。如果您可以向我展示您可能擁有的一些代碼片段,那將非常有幫助。 – Rasmus 2012-07-21 07:09:54