Спасибо, я могу подумать, что если не найдется лучшего решения. Кеш довольно полезен для моего приложения :(.
ение некоторого времени я получаю отчеты об исключениях SQLiteDiskIOException (через Flurry / acra). Я не смог воспроизвести проблему локально, но это мой самый частый сбой, возникающий до одного раза в пятьдесят сеансов в плохой день. Они, кажется, особенно часто встречаются под Android 2.3.x.
Я абсолютно не использую SQL в своем собственном коде, но у меня одновременно работает более одного WebView (два плюс рекламный SDK). Кажется, что все ошибки были вызваны WebView одним из следующих способов:
android.webkit.WebViewDatabase.clearCacheandroid.webkit.WebViewDatabase.flushCacheStatandroid.webkit.WebViewDatabase.deleteCookiesandroid.webkit.WebViewDatabase.removeCache(Также получено несколько отчетов об исключении android.database.sqlite.SQLiteDatabaseCorruptException, но они встречаются крайне редко). Я прокомментировал все, что касалось очистки кэша WebView в моем собственном коде, но это не помогло.
Кто-нибудь знает, каким образом я мог бы предотвратить, поймать или более четко выделить причину этих исключений? Они слишком часты, чтобы просто быть вызваны плохой памятью SD.
Спасибо!
Редактировать: Исходный код по запросу:
browser=(WebView)findViewById(R.id.webkit);
browser.setWebViewClient( new CustomWebViewClient(this,browser) );
WebSettings webSettings = browser.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginsEnabled(true);
browser.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
webSettings.setBuiltInZoomControls(true);
browser.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressbarhorizontal.setProgress(progress);
}
});
XML:
<WebView android:id="@+id/webkit" android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="true" android:nextFocusDown="@+id/bottomview"></WebView>