#android #sqlite #android-room
Вопрос:
Я пытаюсь очистить базу данных при нажатии кнопки выхода из системы.
Класс базы данных FlatDatabase
@Database(entities = {SocietyFlatsDetailsData.class},version = 1)
public abstract class FlatDatabase extends RoomDatabase {
public static FlatDatabase instance;
public abstract FlatDao flatDao();
public static synchronized FlatDatabase getInstance(Context context){
if (instance==null){
instance = Room.databaseBuilder(context.getApplicationContext()
,FlatDatabase.class,"flat_database")
.fallbackToDestructiveMigration()
.allowMainThreadQueries()
.build();
}
return instance;
}
}
Я очищаю данные с помощью этой строки
FlatDatabase.getInstance(getContext()).clearAllTables();
после выполнения этой строки данные таблицы будут успешно очищены. но проблема в том, что данные не вставляются, когда я пытаюсь вставить данные таблицы после удаления.
это может быть связано с изменением схемы
есть какое-нибудь решение ??
Комментарии:
1. Вы используете одноэлементный шаблон, поэтому ваша база данных создается только один раз. Попробуйте поместить «экземпляр = null;» в свой метод clearAllTables (). Это приведет к воссозданию базы данных при следующем вызове getInstance ().
2. @gioravered clearAllTable () — это метод предопределения. как я могу поставить «экземпляр = null;»?
3. О, прости. не был с ним знаком. В таком случае я не уверен, в чем проблема..