i加载使用JavaScript文件加载全页的网站。每次将页面加载到Web View时,它会显示一些内存在

中增加

设置>应用>运行

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

我不缓存WebView中的资源。但是,当我使用仪器来分析内存时,它显示我的图像资源缓存在内存中不会被释放。 我的代码在此用于参考:

    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的内存加载?

提前感谢。

有帮助吗?

解决方案

webview是一个复杂的UI小部件,并且在使用时将消耗很大的内存。在Andriod 4.4之前,WebView.freememory()API可能有助于,具体取决于实际使用场景后面的内存。

在使用WebView和Invaide WebView.Destroy()完成时,将回收一些内存并从视图层次结构分离它。

在Android 4.4内存管理中,WebView内部更自动,WebView将在系统欠加载时尝试释放内存,并触发触发器上的intrimmemory( http://developer.android.com/reference/android/content/componentcallbacks2.html#ontrimmemory(int))。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top