WebView를 클릭하면 메모리가 증가합니다
-
22-12-2019 - |
문제
JavaScript 파일을 사용하여 전체 페이지를 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로로드하는 메모리로드를 어떻게 최적화 할 수 있습니까?
미리 감사드립니다.
해결책
WebView는 복잡한 UI 위젯이며 사용하는 동안 중요한 메모리를 소비합니다.AndrioD 4.4 이전에, WebView.FreemMemory () API는 실제로 장면 뒤의 메모리를 사용하는 것에 따라 도움이 될 수 있습니다.
WebView로 완료되고 WebView.Destroy ()를 호출하고 View 계층에서 분리 할 때 일부 메모리가 회수됩니다.
Android 4.4 메모리 관리는 WebView 내에서 자동으로 자동으로 시스템이로드되고있는 경우 메모리를 확보하고 ontrimmemory ( http://developer.android.com/reference/android/content/componentcallbacks2.html#ontrimmemory (int) ).
제휴하지 않습니다 StackOverflow