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