Поддерживает ли RoomDB dropAllTables () и createAllTables ()? - PullRequest
0 голосов
/ 16 июня 2020

GreenDAO поддерживает DaoMaster.dropAllTables () и DaoMaster.createAllTables (). Ищу аналогичный функционал в RoomDB. Поддерживает ли RoomDB эту функциональность ??

Сценарий использования этой функции: когда пользователь пытается войти в мое приложение с новым номером мобильного телефона, я хочу очистить данные старого номера входа, показывая предупреждение диалоговое окно и разрешите вход с новым номером.

1 Ответ

0 голосов
/ 17 июня 2020

Room поддерживает удаление и создание таблиц только во время миграции между версиями схемы.

Вы можете получить доступ к базовому SupportSQLiteDatabase через RoomDatabase.getOpenHelper (). GetReadableDatabase () . При этом вы можете использовать exe cSQL () для выполнения SQL операторов, включая удаление и создание таблицы.

Но это не соответствует предполагаемому использованию комнаты и небезопасно. Скорее всего, это приведет к поломке InvalidationTracker , используемого для уведомления наблюдателей об изменениях в управляемых таблицах.

С точки зрения вашего варианта использования, похоже, что вместо удаления и воссоздания таблиц все, что вам нужно do очищает их, удаляя все записи.

...