안드로이드에서 웹뷰나 하이브리드앱을 사용시 캐쉬가 사용되는데, 


서버에서 파일을 갱신하여도 예를들어 동일한 이름의 css 파일이나 썸네일 이미지등


안드로이드 앱에서 기존에 있던 파일과 동일하다고 생각하여 다운로드를 받지 않는 경우가 생긴다.


모바일 브라우저의 CSS를 바로 적용시키기 위한 방법은


해결책으로는 


1. 페이지 로딩시 time값등 변경된 값을 주어 자동으로 갱신하도록 한다.


<link rel="stylesheet" type="text/css" href="./include/style.css?<?=time()?>"/>

<link href="./css/readizgen.css?<?=filemtime(\'./css/readizgen.css\')?>" rel="stylesheet">


temp.css 의 뒤에 "?" 를 붙이고, 변경된 값을 넣어주면 된다.

예를 들어 

1) temp.css?123 

2) temp.css?x=234

3) temp.css?ver=2

"?"뒤에 있는 값이 다르면 변경된것으로 브라우져가 인식하고 다시 다운로드를 받는다.


2. 앱 종료시 강제로 캐시를 지운다. (안드로이드 앱 종료시)


    private void clearApplicationCache(java.io.File dir){
        if(dir==null)
            dir = getCacheDir();
        else;
        if(dir==null)
            return;
        else;
        java.io.File[] children = dir.listFiles();
        try{
            for(int i=0;i<children.length;i++)
                if(children[i].isDirectory())
                    clearApplicationCache(children[i]);
                else children[i].delete();
        }
        catch(Exception e){}
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        clearApplicationCache(null);
    } 
    

참고사이트 : 

http://www.androidpub.com/265895

http://ziumb.tistory.com/88

http://blog.readiz.com/45


+ Recent posts