Создание базы данных комнат для каждого пользователя в Android - PullRequest
0 голосов
/ 09 мая 2020

Я попытался реализовать приложение с несколькими аккаунтами, используя базу данных ROOM. Итак, я решил создать объект базы данных ROOM для каждого пользователя, например:

val appDatabaseName = "myapp" + getUserUin()
AppDatabase appDatabase = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, appDatabaseName).build()

Global.setAppDatabase(appDatabaseName)// using this object for later transactions

Когда пользователь пытается выйти из системы или сменить учетную запись, я позвонил:

Global.getAppDatabase().close() // try to close the ROOM object

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

java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

Но я понятия не имею, почему это происходит.

Так что мне интересно,

  1. Должен Я закрываю объект «База данных комнат» после выхода пользователя из системы / переключения учетной записи? Могу ли я предоставить системе закрыть все созданные мной объекты Room?
  2. Если я не могу, как мне разрешить это исключение?
...