Я создаю приложение для чтения новостей, которое время от времени загружает веб-страницы в WebView
.
Я заметил, что с поведением по умолчанию кеш может стать очень необоснованным очень быстро. Независимо от того, удалит ли Android этот кеш при низкой памяти, я не понимаю, что мои пользователи видят приложение новостей 15 МБ, когда все, кроме веб-кеша, составляет около 1 МБ.
Однако, я бы хотел использовать кеш в некоторой степени. Я видел WebSettings # setAppCacheMaxSize(), и казалось, что это всего лишь билет.
Кажется, он ничего не делает. Я жестко запрограммировал следующее в методе, который вызывается моей активностью onCreate(), прежде чем что-либо загрузится:
originalSourceWebView.getSettings().setAppCacheMaxSize(300*1024);
(я использовал большее, настраиваемое значение, но уменьшил его, чтобы подтвердить свою проблему).
Я дую прямо на 300 КБ без каких-либо фанфаров, как показано settings->applications->manage applications->click on my app
. Я слушаю в WebChromeClient # onReachedAppMaxCacheSize для событий, но это никогда не срабатывает.
Кто-нибудь успешно использовал это? Есть ли какой-то другой кеш, который я должен пытаться управлять? Документы кажутся довольно разреженными. Я вошел в источник Android, но он просто отправляет значения в собственный код, и я не знаю, как вникать в это.
Мое тестовое окружение является связующим звеном на 2.2.2. Я знаю, что мне нужно будет сделать вызовы кеша отражением, чтобы поддерживать 1.5 и 1.6, но если я не смогу выполнить эту работу, не будет необходимости.