2013-06-21 24 views
11

tôi đang tích hợp Volley vào một dự án và đã xem qua cácGoogle Volley - khi sử dụng Cache.remove và Cache.invalidate

chuẩn [Chúng tôi có các mục trong Cache, nhưng muốn cho phép người dùng để làm mới nào] kịch bản

Bây giờ Google Volley cung cấp 2 cách để xóa một mục từ cache:

getRequestQueue().getCache().remove(key); 

getRequestQueue().getCache().invalidate(key, fullExpire); 

Tôi đã xem mã và hơi ngạc nhiên, rằng invalidate với fullExpire được đặt thành true không hoạt động chính xác như cuộc gọi đến remove(key).

Ai đó có thể giải thích lợi ích của việc sử dụng fullExpire qua remove()?

Trả lời

15

Xóa nghĩa là bạn đang xóa dữ liệu được lưu trong bộ nhớ cache thực tế.

Vô hiệu hóa nghĩa là bạn chỉ đang đánh dấu dữ liệu là không hợp lệ. Vì vậy, bóng chuyền sẽ kiểm tra với máy chủ cho dù dữ liệu vẫn còn hợp lệ. Toàn bộ thời gian hết hạn xác định liệu có sử dụng dữ liệu trước khi bóng chuyền đã xác thực nó với máy chủ hay không.

Chi tiết khác trong nguồn: https://android.googlesource.com/platform/frameworks/volley/+/master/src/main/java/com/android/volley/Cache.java

+0

Liên kết này bị hỏng. –

+0

Cảm ơn .. đã chỉnh sửa câu trả lời để trỏ tới liên kết chính xác. Họ đã thay đổi cấu trúc mã để sử dụng quy ước Studio –

+0

Xin chào, tôi đã sử dụng tính năng đệm bộ nhớ đệm với phân trang khi phần cuối của recyclerview được truy cập nó fetchList newList từ máy chủ được thêm vào cuối oldList của tôi, nếu tôi bật bộ nhớ đệm sau đó oldList là một lần nữa hiển thị như vậy lặp đi lặp lại cùng một danh sách một lần nữa, vì vậy tôi cần phải loại bỏ dữ liệu bộ nhớ cache onLoadMoreItems() được gọi là ở phần cuối của recyclerView, làm thế nào tôi có thể đạt được điều này? –

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