From 931666b89c3557e843e7fb96f9af8ad319234253 Mon Sep 17 00:00:00 2001 From: OliE Date: Sat, 27 Oct 2018 13:45:44 +0200 Subject: [PATCH] re-open database without caching sql -shm, -wal files --- .../main/java/com/health/openscale/core/OpenScale.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 5851c2c5..cd407853 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -99,7 +99,7 @@ public class OpenScale { btDeviceDriver = null; fragmentList = new ArrayList<>(); - reopenDatabase(); + reopenDatabase(false); updateScaleData(); } @@ -120,13 +120,14 @@ public class OpenScale { return instance; } - public void reopenDatabase() throws SQLiteDatabaseCorruptException { + public void reopenDatabase(boolean truncate) throws SQLiteDatabaseCorruptException { if (appDB != null) { appDB.close(); } appDB = Room.databaseBuilder(context, AppDatabase.class, DATABASE_NAME) .allowMainThreadQueries() + .setJournalMode(truncate == true ? RoomDatabase.JournalMode.TRUNCATE : RoomDatabase.JournalMode.AUTOMATIC) // in truncate mode no sql cache files (-shm, -wal) are generated .addCallback(new RoomDatabase.Callback() { @Override public void onOpen(SupportSQLiteDatabase db) { @@ -420,7 +421,7 @@ public class OpenScale { copyFile(Uri.fromFile(exportFile), Uri.fromFile(tmpExportFile)); copyFile(importFile, Uri.fromFile(exportFile)); - reopenDatabase(); + reopenDatabase(false); if (!getScaleUserList().isEmpty()) { selectScaleUser(getScaleUserList().get(0).getId()); @@ -436,6 +437,7 @@ public class OpenScale { public void exportDatabase(Uri exportFile) throws IOException { File dbFile = context.getApplicationContext().getDatabasePath("openScale.db"); + reopenDatabase(true); // re-open database without caching sql -shm, -wal files copyFile(Uri.fromFile(dbFile), exportFile); }