清理缓存:
在WebView使用中可能会遇到一个问题,那就是加载了很多页面,退不出去了,你需要一直按返回键很多次。体验非常差。这是你除了按照上篇博客,在特定网页捕获返回键。还可以清理缓存。
// 清理缓存
private void clearHistory() {
mWebView.postDelayed(new Runnable() {
@Override
public 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:
}
}
};
写的很啰嗦,就这么个意思。