单击WebView时,内存会增加
-
22-12-2019 - |
题
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))。
不隶属于 StackOverflow