如何解决WebView导致的内存泄漏
懒得废话:
1.避免在xml布局文件中直接嵌套webview控件,而是采用addview的方式new一个webview并加载到布局中,上下文变量使用applicationContext,如:
webView = new WebView(getApplicationContext());
webView.getSettings().setJavaScriptEnabled(true);
framelayout.addView(webView);
webView.loadUrl(url);
2.当activity生命周期结束时及时销毁/释放资源,如:
@Override
protected void onDestroy() {
if (webView != null) {
ViewParent parent = webView.getParent();
if (parent != null) {
((ViewGroup) parent).removeView(webView);
}
webView.stopLoading();
webView.getSettings().setJavaScriptEnabled(false);
webView.clearHistory();
webView.removeAllViews();
webView.destroy();
}
super.onDestroy();
}
当然,如果还有问题欢迎大家留言讨论~