Память увеличивается при нажатии на веб-просмотр
Я загружаю веб-сайт, который загружает всю страницу, используя файлы Javascript, в WebView. Каждый раз, когда я загружаю страницу в веб-просмотр, она показывает, что в памяти
настройка> приложения> работает
Даже когда я выпускаю 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?
Заранее спасибо.
1 ответ
WebView представляет собой сложный виджет пользовательского интерфейса и потребляет значительную память во время использования. До версии Andriod 4.4 API WebView.freeMemory() может помочь, в зависимости от того, что на самом деле использует закулисную память.
Некоторая память будет освобождена, когда вы закончите работу с WebView и вызовете WebView.destroy() и отсоедините ее от иерархии представления.
В Android 4.4 управление памятью происходит более автоматически внутри WebView, и WebView пытается освободить память, когда система находится под нагрузкой, и запускает onTrimMemory ( http://developer.android.com/reference/android/content/ComponentCallbacks2.html).