Я решил проблему самостоятельно.
Я обнаружил, что папка базы данных, помимо самой базы данных, содержит два дополнительных файла.Содержимое папки выглядело так:
- MyDatabase.db
- MyDatabase.db-shm
- MyDatabase.db-wal
Без этих файлов база данных является неполной.
До SDK 28 существовал только один дополнительный файл, который не влияет на целостность базы данных:
Решением было выполнение .setWriteAheadLoggingEnabled (false) для единственного экземпляра моей базы данных в SQLiteOpenHelper:
synchronized static MyDatabase getInstance(Context context) {
if (instance == null) {
instance = new MyDatabase(context.getApplicationContext());
instance.setWriteAheadLoggingEnabled(false);
}
return (instance);
}
Это восстанавливает параметр ведения журнала базы данных, используемый вSDK <28 по умолчанию.Это дает мне один файл базы данных, который содержит полные и актуальные данные, не зависящие от дополнительных файлов. </p>