2011-12-19 35 views
8

Tôi cần phải cache các câu trả lời http và dựa trên blog post chức năng này được tích hợp vào ICS. Tuy nhiên, tôi cần hỗ trợ các phiên bản 1.6 trở lên, vì vậy muốn xem liệu có sẵn sàng sử dụng các thư viện trên mạng trước khi xem xét những gì cần phải quay lại chức năng ICS hay không.Các tùy chọn tốt hơn so với backporting ICS HttpResponseCache

Cập nhật:

Đây là liên kết để HttpResponseCache mà chỉ hỗ trợ java.net.HttpURLConnection.

Second update:

Sau khi một số nghiên cứu, có vẻ như HttpClient của Apache không hỗ trợ caching, với sự báo trước rằng mặc định (trong bộ nhớ) backend có lẽ không phải là một ý tưởng tốt cho các ứng dụng Android bộ nhớ hạn chế. Ehcache có thể là một lựa chọn tốt tùy thuộc vào sự hỗ trợ của nó cho Android.

Trả lời

11

Tôi tạo ra vấn đề này yêu cầu rằng một đổi tên, phiên bản tương thích ngược của android.net.http.HttpResponseCache được bổ sung vào thư viện tương thích: https://code.google.com/p/android/issues/detail?id=23875

Google đã từ chối vấn đề này, nhưng đề nghị giúp tôi trong việc đưa ra backport và thư viện. Vì vậy, tôi đang cố gắng để làm điều đó.

Ngoài ra, HttpClient-Cache có thể là một điều gọn gàng để sử dụng. Nó không hoạt động trên Android như là, bạn cần phải thực hiện một sửa đổi nhỏ và biên dịch lại nó. Xem http://comments.gmane.org/gmane.comp.apache.httpclient.user/501

Tuy nhiên, tôi khuyên bạn nên thử https://code.google.com/p/httpclientandroidlib/ - đây là phiên bản được đóng gói lại (được đổi tên) của HttpClient và HttpClient-Cache dành cho Android. Nó khá đơn giản để thiết lập (chỉ cần bao gồm một cái lọ và sau đó sử dụng ch.boye.httpclientandroidlib. * Thay vì org.apache.http. *).

+0

Cảm ơn! Tôi đã kết thúc bằng cách sử dụng CachingHttpClient của Apache trong phiên bản 4.1 với một CacheStorage dựa trên SQLite nhưng sẽ đi với 'httpclientandroidlib' nếu tôi biết về nó trước đó. –

7

Tôi đã bắt đầu sử dụng thư viện mà candrews quay lại và tôi vui mừng báo cáo rằng nó hoạt động tốt như một bản thay thế cho các ứng dụng Android trước ICS sử dụng HttpUrlConnection. Nó có sẵn tại https://github.com/candrews/HttpResponseCache

Một điều thú vị khác là API giống như phiên bản ICS, vì vậy bạn có thể bật tích hợp sẵn trên ICS và sử dụng phiên bản backport ICS của candrew với mã rất ít.

+0

Tôi đang tuyệt vọng tìm kiếm một số ví dụ làm việc của HttpResponsecache. Nó sẽ thực sự hữu ích nếu bạn có thể chỉ cho tôi một số đoạn mã mà bạn có thể có. – Rasmus

Các vấn đề liên quan