-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