Как удалить пользовательские данные из области, когда другой пользователь входит в Android - PullRequest
0 голосов
/ 12 декабря 2018

Всякий раз, когда пользователь входит в систему, я пытаюсь проверить, является ли пользователь тем же, что и ранее вошедший в систему пользователь. Если пользователь отличается, я пытаюсь удалить весь экземпляр базы данных, а затем создать экземпляр для вновь зарегистрированного пользователя.в user.Если пользователь такой же, то пользовательские данные должны быть удалены

Как удалить экземпляр базы данных?Попытка

  Realm.getDefaultConfiguration()?.let {
            Realm.getDefaultInstance().close()
            Realm.deleteRealm(it)
          }

Но получено следующее исключение

java.lang.IllegalStateException: не разрешается удалять файл, связанный с открытой областью.Не забудьте закрыть () все экземпляры Королевства перед удалением его файла: /data/data/com.mypackage.name/files/filename.realm

Как закрыть все экземпляры и удалить их

1 Ответ

0 голосов
/ 13 декабря 2018

Если вы создали равное количество экземпляров области, вам необходимо одинаково закрыть экземпляр области.

Realm realm  = Realm.getDefaultInstance();
realm.beginTransaction();
.....//insert or update
realm.commitTransaction();
realm.close();

Или вы можете вызвать Realm.deleteAll() в блоке транзакции.Этот метод вызова не нужно закрывать экземпляр.Но он будет очищен для всех объектов без схемы БД.

Ссылка: Как очистить базу данных в области в Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...