单击webview时内存增加

时间:2013-11-18 08:48:04

标签: android android-webview android-memory android-websettings

我加载了使用Javascript文件将整个页面加载到WebView的网站。每当我将页面加载到Web视图时,它会向我显示一些内存增加

  

设置>应用>运行

甚至,当我发布Webview时,它也不释放内存。

我没有缓存Webview中的资源。但是,当我使用仪器分析内存时,它会向我显示图像资源缓存在内存中,而不会被释放。 我的代码在这里为ref:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);
    Intent in = getIntent();
    String page_url = in.getStringExtra("link");
    Log.i("display","url :"+page_url);
    if(deleteDatabase("webview.db") && deleteDatabase("webviewCache.db")){
        Toast.makeText(this, "Delete Webvie data base successfully",Toast.LENGTH_SHORT).show();
    }
    webview = (WebView) findViewById(R.id.webpage);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new WebViewClient());
    webview.getSettings().setLoadWithOverviewMode(true);
    webview.getSettings().setAppCacheEnabled(false);
    webview.loadUrl(page_url);
    webview.clearHistory();
    webview.clearFormData();
    webview.clearCache(true);

任何人都可以指导我失踪的地方吗?如何优化WebView的内存加载?

提前致谢。

1 个答案:

答案 0 :(得分:1)

WebView是一个复杂的UI小部件,在使用时会占用大量内存。在Andriod 4.4之前,WebView.freeMemory()API可能有所帮助,具体取决于实际使用幕后内存的内容。

完成WebView并调用WebView.destroy()并将其从视图层次结构中分离后,将回收一些内存。

在Android 4.4中,内存管理在WebView中更加自动化,WebView将在系统负载时尝试释放内存并触发onTrimMemory(http://developer.android.com/reference/android/content/ComponentCallbacks2.html#onTrimMemory(int))。