WebViewをクリックするとメモリが増加します
-
22-12-2019 - |
質問
JavaScriptファイルをWebViewに使用してページ全体をロードするWebサイトをロードします。Webビューにページをロードするたびに、
でいくつかのメモリが増加しました設定>アプリ>実行
も、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を終了してwebview.destroy()を呼び出してビュー階層から切り離して、一部のメモリは再生され、それをビュー階層から切り離します。
Android 4.4メモリ管理はWebView内でより自動であり、システムがロードされているときにWebViewがメモリを解放し、ontrimMemory( http://developer.android.com/reference/android/content/componentCallbacks2.html#ontrimMemory(int))。
所属していません StackOverflow