webview和H5 清除缓存和缓存文件删除。

来源:互联网 发布:java静态网页 编辑:程序博客网 时间:2024/05/01 03:35
webview和H5 清除缓存和缓存文件删除。
缓存请看:http://blog.csdn.net/menglele1314/article/details/45717531


import java.io.File;    import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.View; import android.webkit.JsPromptResult; import android.webkit.JsResult; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebSettings.RenderPriority; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast;    public class MainActivity extendsActivity {        privatestaticfinal String APP_CACAHE_DIRNAME ="/webcache";     privateTextView tv_topbar_title;     privateRelativeLayout rl_loading;     privateWebView mWebView;     privateString url;        @Override     protectedvoidonCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);                    url ="http://www.sina.com.cn";         initView();     }        privatevoidinitView() {                    tv_topbar_title = (TextView) findViewById(R.id.tv_topbar_title);              rl_loading = (RelativeLayout) findViewById(R.id.rl_loading);                    mWebView = (WebView) findViewById(R.id.mWebView);                    initWebView();                    mWebView.setWebViewClient(newWebViewClient() {                @Override             publicvoidonLoadResource(WebView view, String url) {                                         super.onLoadResource(view, url);             }                @Override             publicbooleanshouldOverrideUrlLoading(WebView webview, String url) {                                    webview.loadUrl(url);                    returntrue;             }                @Override             publicvoidonPageStarted(WebView view, String url, Bitmap favicon) {                 rl_loading.setVisibility(View.VISIBLE);// 显示加载界面             }                @Override             publicvoidonPageFinished(WebView view, String url) {                    String title = view.getTitle();                 tv_topbar_title.setText(title);                 tv_topbar_title.setVisibility(View.VISIBLE);                 rl_loading.setVisibility(View.GONE);// 隐藏加载界面             }                @Override             publicvoidonReceivedError(WebView view,interrorCode, String description, String failingUrl) {                    rl_loading.setVisibility(View.GONE);// 隐藏加载界面                    Toast.makeText(getApplicationContext(),"",                         Toast.LENGTH_LONG).show();             }         });            mWebView.setWebChromeClient(newWebChromeClient() {                @Override             publicbooleanonJsAlert(WebView view, String url, String message, JsResult result) {                   Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();                 result.confirm();                    returntrue;             }                @Override             publicbooleanonJsConfirm(WebView view, String url, String message, JsResult result) {                   returnsuper.onJsConfirm(view, url, message, result);             }                @Override             publicbooleanonJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {                  returnsuper.onJsPrompt(view, url, message, defaultValue, result);             }         });                    mWebView.loadUrl(url);     }        privatevoidinitWebView() {                    mWebView.getSettings().setJavaScriptEnabled(true);         mWebView.getSettings().setRenderPriority(RenderPriority.HIGH);         mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); //设置 缓存模式选择自己想要的模式        // 开启 DOM storage API 功能         mWebView.getSettings().setDomStorageEnabled(true);         //开启 database storage API 功能         mWebView.getSettings().setDatabaseEnabled(true);          String cacheDirPath = getFilesDir().getAbsolutePath()+APP_CACAHE_DIRNAME;         //设置数据库缓存路径         mWebView.getSettings().setDatabasePath(cacheDirPath);         //设置  Application Caches 缓存目录         mWebView.getSettings().setAppCachePath(cacheDirPath);         //开启 Application Caches 功能         mWebView.getSettings().setAppCacheEnabled(true);     }            /**     * 清除WebView缓存  在onDestroy调用这个方法就可以了     */     publicvoidclearWebViewCache(){                    //清理Webview缓存数据库         try{             deleteDatabase("webview.db");              deleteDatabase("webviewCache.db");         }catch(Exception e) {             e.printStackTrace();         }                    //WebView 缓存文件         File appCacheDir =newFile(getFilesDir().getAbsolutePath()+APP_CACAHE_DIRNAME);         Log.e(TAG,"appCacheDir path="+appCacheDir.getAbsolutePath());                    File webviewCacheDir =newFile(getCacheDir().getAbsolutePath()+"/webviewCache");         Log.e("path===","webviewCacheDir path="+webviewCacheDir.getAbsolutePath());                    //删除webview 缓存目录         if(webviewCacheDir.exists()){             deleteFile(webviewCacheDir);         }         //删除webview 缓存 缓存目录         if(appCacheDir.exists()){             deleteFile(appCacheDir);         }     }            /**     * 递归删除 文件/文件夹     *      * @param file     */     publicvoiddeleteFile(File file) {            Log.i(TAG,"delete file path="+ file.getAbsolutePath());                    if(file.exists()) {             if(file.isFile()) {                 file.delete();             }elseif(file.isDirectory()) {                 File files[] = file.listFiles();                 for(inti = 0; i < files.length; i++) {                     deleteFile(files[i]);                 }             }             file.delete();         }else{             Log.e("delete===","delete file no exists "+ file.getAbsolutePath());         }     }    }

1 0
原创粉丝点击