-1
我正在开发针对android的自定义浏览器。当浏览器支持JavaScript时,当您浏览网站时,应用程序获得的Ram比我在没有JavaScript支持的情况下使用浏览器多得多。请给一个告知如何解决这个问题Android WebView内存泄露
公共无效的onCreate(捆绑savedInstanceState){
mWebView=new WebView(getApplicationContext());
mWebContainer=(FrameLayout)findViewById(R.id.web_container);
mWebContainer.addView(mWebView);
mWebView.getSettings().setUserAgentString("");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.getSettings().setDatabaseEnabled(true);
mWebView.getSettings().setGeolocationEnabled(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setSavePassword(true);
mWebView.getSettings().setSaveFormData(true);
}
........................................
private static class HelloWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
........................
protected void onDestroy()
{
super.onDestroy();
mWebContainer.removeAllViews();
mWebView.destroy();
mWebView=null;
System.gc();
}
创建了一个简单的WebView,如内存泄漏。
但为什么其他浏览器不使用这么多的内存? – AndroidNub
我想这是因为它们是用NDK(http://developer.android.com/tools/sdk/ndk/index.html)创建的,它允许更多的控制这种东西。 – Aerilys
你的意思是如果我没有使用ndk,那么由于内存不足,我的程序可能随时关闭?为什么支持JavaScript会消耗大量内存? – AndroidNub