như Volley.Request.getCacheKey()
lợi nhuận URL mà trong trường hợp của tôi là như nhau; điều này không hiệu quả với tôi.
Thay vào đó tôi phải ghi đè getCacheKey() trong lớp con tôi quay trở lại URL + POST (key = Value)
Bằng cách đó tôi đã có thể bộ nhớ cache tất cả các yêu cầu POST thực hiện cho các URL tương tự với dữ liệu POST khác nhau .
khi bạn cố truy xuất yêu cầu được lưu trong bộ nhớ cache, bạn cần tạo khóa bộ nhớ cache theo cùng một cách.
vì vậy đây là một bản chụp của mã của tôi:
public class CustomPostRequest extends Request<String> {
.
.
private Map<String, String> mParams;
.
.
public void SetPostParam(String strParam, String strValue)
{
mParams.put(strParam, strValue);
}
@Override
public Map<String, String> getParams() {
return mParams;
}
@Override
public String getCacheKey() {
String temp = super.getCacheKey();
for (Map.Entry<String, String> entry : mParams.entrySet())
temp += entry.getKey() + "=" + entry.getValue();
return temp;
}
}
Khi bao giờ bạn xây dựng một yêu cầu mới, bạn có thể sử dụng getCacheKey() để tìm kiếm các yêu cầu lưu trữ đầu tiên trước khi đưa nó vào hàng đợi yêu cầu.
Tôi hy vọng điều này sẽ hữu ích.
Nguồn
2014-10-12 23:24:49
Bạn khởi tạo đối tượng mParams ở đâu? Làm ơn giúp tôi! –
Cảm ơn bạn, Bạn đã cứu mạng tôi. –
bạn đã lưu thời gian của tôi –