2012-11-23 2 views
2

내 웹 응용 프로그램에서 원격 웹 페이지를로드하는 webview를 사용하고 있습니다. 그러면 xhr-pooling을 통해 socket.io (node.js)을 사용하고 있습니다.안드로이드 Webview - 캐시를 비활성화 할 수 없습니다

문제는 수신 된 데이터의 캐싱을 socket.io을 통해 비활성화 할 수 없다는 것입니다. 예를 들어, 10 초마다 내 노드 서버는 io.emit을한다, 내 웹보기는 그것을 수신에 저장 :

그렇게하지

/data/data/...../webviewCache

browser.getSettings().setCacheMode(2); //(2 is LOAD_NO_CACHE) 
browser.getSettings().setAppCacheEnabled(false); 
: 나는 시도했다 ... 시간은 해당 파일의 수는 단지 증가하고 그들이 내 응용 프로그램 실행 속도를 도움이되지 않습니다 통과하기 때문에 내 웹보기 아무것도, 저장

을 원하는

하지만 그 중 어느 것도 작동하지 않습니다. 내 webview는 여전히 파일을 캐시 폴더에 저장하고 있습니다. 이 순간

, 나는 캐시 폴더 60 초마다 비우는되는 타이머를 설정 한하지만

내가 여기서 뭔가를 놓치고 있습니까 ... 내가 생산에 출시하고자하는 솔루션이 아니다 또는 버그에있다 android에서 캐시를 사용 중지 하시겠습니까?

업데이트 1 : 디버깅 하루 종일 재미있는 것을 발견했습니다. 로그 캣 두 가지 흥미로운 것들을 보여줍니다 saveCacheFilegetCacheFile

가 그럼 난 캐시를 해제하려고 다시 한 번 결정했습니다을 ... 실제로 웹보기가로드되지 않았습니다 발생

browser.getSettings().setCacheMode(android.webkit.WebSettings.LOAD_NO_CACHE); 

파일을 캐시에서 더 이상 가져 오지 못했지만 여전히 파일을 저장하고있었습니다. 로그인 고양이 뭔가 다음과 같이 말한다 :

saveCacheFile for url .../socket.io/1/xhr-polling/BLNN28E7S4PZJsy2pWaF?t=13537 

그래서 내가 는 모든 요청에 ​​ 캐시 파일을 저장하기에서 웹뷰를 방지하는 방법, 실제 문제가 될 것이다 생각합니다.

답변

1

URL의 검색어 부분에 임의의 문자열을 추가하는 것은 어떻습니까? 이 트릭은 경우에 따라 작동합니다.

+2

캐시에서 데이터를 가져 오는 데는 문제가 없습니다. 안드로이드는 파일을 저장하고 불필요한 공간을 사용합니다. – Igor

관련 문제