Search code examples
androidandroid-room

Room data is lost after my app is restarted


I have a simple implementation of Room in my app. It has two entities. It works fine while app is running. But I see no data once app is restarted.

This is my database creation code -

@Database(entities = {Person.class, College.class}, version = 1,  exportSchema = true)
public abstract class AppDatabase extends RoomDatabase {
    private static AppdDatabase INSTANCE;
    public abstract PersonDao personDao();
    public abstract CollegeDao collgeDao();

    public static AppDatabase getInstance(Context context) {
        if (INSTANCE == null) {
            INSTANCE = Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "my-sample-app.db")
                    .build();
        }
        return INSTANCE;
    }

    public static void destroyInstance() {
        if (INSTANCE != null) INSTANCE.close();
        INSTANCE = null;
    }
}

In any running session, I can add and view data but nothing is available after app restart. What am I missing here?

Thanks


Solution

  • It was a silly mistake-

    I wasn't using getInstance() posted in question, I was using below code to create database instead -

    mDb = Room.inMemoryDatabaseBuilder(mContext, AppDatabase.class)
    

    My code works as intended with original code posted in question.

    Thanks