Android模块化编程——WebView使用之清理缓存
清理缓存:
在WebView使用中可能会遇到一个问题,那就是加载了很多页面,退不出去了,你需要一直按返回键很多次。体验非常差。这是你除了按照上篇博客,在特定网页捕获返回键。还可以清理缓存。
// 清理缓存private void clearHistory() {mWebView.postDelayed(new Runnable() {@Overridepublic void run() {mWebView.clearHistory();}}, 1000);}
这里为啥要延迟1s呢?这是WebView内部缺陷,
如果你不延迟1s,她会保留新页面的前一页。下面是我如何调用。
private View.OnClickListener mListener = new View.OnClickListener() {public void onClick(View paramAnonymousView) {MainActivity.this.showMainWeb();MainActivity.this.mWebView.stopLoading();// if (MainActivity.this.selectedView != null)switch (paramAnonymousView.getId()) {case R.id.activity_main_iv_index:// mWebView.clearCache(true);MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL + "index.aspx");((ImageView) paramAnonymousView).setImageResource(R.drawable.bt_bg_index_selected);// btIndex.setImageResource(R.drawable.bt_bg_index);btWeiXin.setImageResource(R.drawable.bt_bg_type);btContactUs.setImageResource(R.drawable.bt_bg_contact_us);btShoppingCart.setImageResource(R.drawable.bt_bg_shopping_cart);btMine.setImageResource(R.drawable.bt_bg_mine);clearHistory();return;case R.id.activity_main_iv_weixin:// mWebView.clearCache(true);MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL + "category.aspx");((ImageView) paramAnonymousView).setImageResource(R.drawable.bt_bg_type_selected);btIndex.setImageResource(R.drawable.bt_bg_index);// btWeiXin.setImageResource(R.drawable.bt_bg_type);btContactUs.setImageResource(R.drawable.bt_bg_contact_us);btShoppingCart.setImageResource(R.drawable.bt_bg_shopping_cart);btMine.setImageResource(R.drawable.bt_bg_mine);clearHistory();return;case R.id.activity_main_iv_contact_us:MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL + "contactus.aspx");((ImageView) paramAnonymousView).setImageResource(R.drawable.bt_bg_contact_us_selected);btIndex.setImageResource(R.drawable.bt_bg_index);btWeiXin.setImageResource(R.drawable.bt_bg_type);// btContactUs.setImageResource(R.drawable.bt_bg_contact_us);btShoppingCart.setImageResource(R.drawable.bt_bg_shopping_cart);btMine.setImageResource(R.drawable.bt_bg_mine);// Toast.makeText(MainActivity.this,// "origina"+mWebView.getOriginalUrl(),// Toast.LENGTH_SHORT).show();//原始页,上一页clearHistory();return;case R.id.activity_main_iv_shopping_cart:MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL + "order/shoppingCart.aspx");((ImageView) paramAnonymousView).setImageResource(R.drawable.bt_bg_shopping_cart_selected);btIndex.setImageResource(R.drawable.bt_bg_index);btWeiXin.setImageResource(R.drawable.bt_bg_type);btContactUs.setImageResource(R.drawable.bt_bg_contact_us);// btShoppingCart.setImageResource(R.drawable.bt_bg_shopping_cart);// Toast.makeText(MainActivity.this, "url"+mWebView.getUrl(),// Toast.LENGTH_SHORT).show();//新加载的页btMine.setImageResource(R.drawable.bt_bg_mine);clearHistory();return;case R.id.activity_main_iv_mine:// mWebView.clearCache(true);MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL + "myfiles/MyXYL.aspx");((ImageView) paramAnonymousView).setImageResource(R.drawable.bt_bg_mine_selected);btIndex.setImageResource(R.drawable.bt_bg_index);btWeiXin.setImageResource(R.drawable.bt_bg_type);btContactUs.setImageResource(R.drawable.bt_bg_contact_us);btShoppingCart.setImageResource(R.drawable.bt_bg_shopping_cart);// btMine.setImageResource(R.drawable.bt_bg_mine);clearHistory();return;case R.id.activity_main_iv_back:default:}}};
写的很啰嗦,就这么个意思。