问题:webview加载页面后,退出页面再进入或者按HOME键退到后台,再切回来导致页面数据无法显示(一般页面背景是可以正常显示的)。
在此做个笔记。
原因:webview资源没有释放,更准确的说,是释放顺序和初始化不正确导致的,这里贴一下我的释放和重新初始化的顺序。
@Override
protected void onStart() {
super.onStart();
if (isHomePress){
//是否按了home,如果是的话,初始化webview以及相关的setting
initWebView();
isHomePress =false;
}
}
@Override
protected void onResume() {
super.onResume();
loadURLWithHTTPHeaders(urlBackUp); //这里加载你的连接
}
@Override
protected void onPause() {
isHomePress =true;
if (mWebView !=null){
mWebView.loadUrl("");
mWebView.clearCache(true);
}
super.onPause();
}
private void clearWebView(){
if (mWebView !=null){
mWebView.stopLoading();
mWebView.getSettings().setJavaScriptEnabled(false);
mWebView.clearHistory();
mWebView.clearView();
//mWebView = null;
}
}
@Override
protected void onStop() {
clearWebView();
super.onStop();
}
@Override
protected void onDestroy() {
if (mWebView !=null){
ViewParent parent =mWebView.getParent();
if (parent !=null){
((ViewGroup)parent).removeView(mWebView);
}
if (mWebView !=null){
mWebView.removeAllViews();
mWebView.destroy();
mWebView =null;
}
}
super.onDestroy();
}
网友评论