我加载了使用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的内存加载?
提前致谢。
答案 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))。