WebView会引起内存泄露这是地球人都知道的事情了,这是因为如果在xml文件中定义WebView的话,WebView会对当前的Activity持有引用,这样会引起Activity无法正常销毁从而引起Activity的内存泄露。
解决方式:
一、手动添加WebView,手动销毁
1.不要在XML中声明WebView,而是在Activity中手动添加
//Activity的onCreate方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//LinearLayout的作用是承载WebView
LinearLayout linearLayout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
//Context对象要传Application
mWebView = new WebView(getApplicationContext());
linearLayout.addView(mWebView,params);
//将LinearLayout设置给Activity
setContentView(linearLayout);
}
2.手动销毁WebView
/**
* activity的onDestroy()