2017-03-21 6 views
0

내가 원하는 것은 특정 시간에 캐시를 건너 뛰고, http 요청을 작성한 다음 필요시 다음 번에 캐시에 새 결과를 업데이트하는 것입니다. 안드로이드에서 retrofit + okhttp로 이것을 수행 할 수있는 방법이 있습니까 ??캐시를 우회하여 갱신하여 업데이트하십시오.

+1

더 구체적으로 설명해야합니다. 우회하려고하는 캐시는 무엇입니까? 지금까지 무엇을 시도 했습니까? 문제는 정확히 무엇입니까? – pablochan

+0

다음 stackoverflow 링크에 설명 된 것과 같은 http 클라이언트를 만들었습니다. http://stackoverflow.com/questions/23429046/can-retrofit-with-okhttp-use-cache-data-when-offline. 나는 캐시 된 데이터를 사용하여 오프라인 사용과 내 안드로이드 앱 내에서 최대 나이 이내에 탐색 할 수 있습니다. 내가 원하는 것은 사용자가 특정 시간에 앱의 데이터를 강제 업데이트 할 수있는 능력을 부여하는 것입니다. 이 경우 서버에 http 요청을하고 데이터를 가져온 다음 나중에 사용할 수 있도록 캐시 데이터를 업데이트하십시오. –

답변

0

요청에 대해 CacheControl.FORCE_NETWORK을 사용하여 네트워크 요청을 강제로 실행할 수 있습니다. 요청을 만들 때 또는 인터셉터에서 수행 할 수 있습니다.

또 다른 방법은 Cache.evictAll()을 사용하여 캐시를 완전히 지우는 것입니다. 후속 요청은 캐시에 저장됩니다.

Timer을 사용하여 퇴거 프로세스를 예약하고 트리거 할 수 있습니다.

+0

Cache.remove (요청)는 공개 메소드가 아닙니다. 어떻게 사용할 수 있습니까? –

+0

네 말이 맞아, 그 답을 바로 잡았어. – pablochan

+0

CacheControl.FORCE_NETWORK는 캐시 된 파일을 업데이트하므로 다음에 캐시를 사용할 때 업데이트 된 데이터를 가져옵니다. –