Основным видом деятельности моего приложения является Activity
, который содержит Webview
для загрузки веб-страниц.
Я переопределяю метод shouldOverrideUrlLoading(WebView view, String url)
, чтобы каждый URL-запрос вызывал Intent
и загружал новое действие, содержащее WebView
.
Это сделано для того, чтобы обеспечить лучший опыт при нажатии клавиши BACK, просто завершит текущее действие и вернется к предыдущему действию, не нужно времени для повторного отображения страницы по сравнению с использованием goBack () в одном веб-просмотре.
Но теперь проблема в том, что после того, как я открыл много URL-адресов, создав длинную очередь действий в фоновом режиме, используемая им память стала большой.
Когда я возвращаюсь к программе запуска и проверяю прогресс, я вижу, что мое приложение кэширует более 200 миллионов данных. Это недопустимо ...
Интересно, что я вижу, как мое приложение израсходовало мою память, но в представлении «Куча» DDMS в Eclipse я вижу, что приложению выделено не более 10 МБ памяти. Итак, я думаю, что 200M webStorage
кэшируется Webview
?
Есть ли способ управления памятью?
Я рассматриваю просто сохранить, может быть, 5 слоев действий одновременно, а когда вы вернетесь назад 5 раз, просто вернитесь на домашнюю страницу. Но все еще не знаете, как освободить память помимо пяти необходимых мне занятий, которые я никогда больше не буду использовать?
Или, если WebView
автоматически кэширует веб-страницу, как я могу управлять этим вручную? Например, установить максимальный размер кэша или количество страниц?