나는 발리에서 많은 문자열 요청을 처리했습니다. 각 모듈에는 항상 다른 일을하는 onResponseListener가 있습니다. 그리고 오프라인에서도 작업하게해야합니다. 그래서 캐시에서 응답을 얻고 있습니다. 문제는 다른 url과 비동기 적으로 호출되는 많은 요청이있을 수 있다는 것입니다. 문제는 캐시에서 가져올 때 요청의 URL을 기억하는 방법입니다. 현재는 전역 변수에만 있지만 요청이 비동기 적으로 전송 될 수 있으므로 응답이 전역 변수 url과 일치하지 않을 수 있습니다. 어떤 방법으로 요청에 원래 요청한 URL을 onResponse로 가져와 Application.get(). getApi(). getCache (url)에서 직접 사용하는 방법이 있습니까?android volley caching asynchronous requests - ResponseListener에서 요청 URL을 가져 오는 방법
요청은 다음과 같이 항상 같습니다
Application.get().getApi().getRequest(url, mListener);
mListener :
private class ResponseListenerX extends Api.ResponseListener {
@Override
public void onResponse(String response) {
if (response != null) {
}
}
@Override
public void onErrorResponse(VolleyError error) {
if ((error == null || error.networkResponse == null) && url != null) {
// how to get here url from the request
String response = Application.get().getApi().getCache(url);
if (response != null && response.length() > 0) {
// onResponse
}
}
}
}