Я не использую SQLite и веб-просмотр напрямую, веб-просмотры используются в рекламе в моем приложении (я использую AdMob).Есть несколько действий, которые работают как рабочий процесс, идущий вперед и назад, и некоторые действия выполняются в отдельном процессе. Я получаю такое исключение.
android.database.sqlite.SQLiteException: error code 5: database is locked
at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1916)
at android.webkit.WebViewDatabase.flushCacheStat(WebViewDatabase.java:874)
at android.webkit.CacheManager.trimCacheIfNeeded(CacheManager.java:567)
at android.webkit.WebViewWorker.handleMessage(WebViewWorker.java:193)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.os.HandlerThread.run(HandlerThread.java:60)
Нет такого исключения, если я не использую рекламу.
Я полагаю, что веб-представление использует SQLite в фоновом режиме, и это исключение возникает, когда один WebView в Activity A блокирует базу данных для записи и WebView в Activity B (B выполняется в своем собственном процессе), который открывается поверх ActivityА также пытается записать в базу данных и завершается неудачно, потому что база данных уже заблокирована
Существует ли стандартный способ отключить неуправляемые веб-представления от использования базы данных, под неуправляемым я имею в виду использование сторонних библиотек, таких как AdMob SDK или настройку, чтобы не выбрасывать исключениеили обработать исключение.