Android WebView内存泄漏
我在这里读过很多帖子&尝试使用所有的技巧,但还是失败了。应用程序的每个实例都会不断积累更多内存。下面是代码片段。有什么想法吗?只需使用WebView启动页面Android WebView内存泄漏,android,memory,webview,memory-leaks,Android,Memory,Webview,Memory Leaks,我在这里读过很多帖子&尝试使用所有的技巧,但还是失败了。应用程序的每个实例都会不断积累更多内存。下面是代码片段。有什么想法吗?只需使用WebView启动页面 private class MyWV extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.d("My
private class MyWV extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Log.d("MyWV", "shouldOverrideUrlLoading, url = " +url);
return false;
}
}
@Override
public void onCreate(Bundle icicle) {
Log.d(TAG, "onCreate");
Toast.makeText(getApplicationContext(), "Please wait...", Toast.LENGTH_LONG).show();
super.onCreate(icicle);
setContentView(R.layout.main);
mFL = (FrameLayout) findViewById(R.id.base_layout);
mWebView = new WebView(this);
mFL.addView(mWebView);
mWebView.setWebViewClient(new MyWV());
Log.e(TAG,"onCreate: Calling setJavaScriptEnabled...");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.yahoo.com");
}
@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy");
mFL.removeAllViews();
mWebView.removeAllViews();
mWebView.clearHistory();
mWebView.loadUrl("about:blank");
mWebView.freeMemory();
mWebView.destroy();
mWebView = null;
super.onDestroy();
}
根据,尝试使用应用程序上下文创建WebView:
mWebView = new WebView(getApplicationContext());
经过大量调试,发现它与Linux内存无关。这是我们在图形堆管理中搞砸的事情。找到修复程序&现在生活正常无论如何记住,当应用程序被os永久终止时调用onDestroy不总是调用,例如,在这种情况下调用screen rotate onCreate我尝试过这个,没有帮助。此外,每次我退出应用程序时都会调用OnDestroy。它也可能是这样的:,在中也引用了它,并提供了一种可能的解决方法,尽管这种方法很难看。