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

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

try {
        Realm.deleteRealm(realmConfiguration);   
    } catch (Exception ex){
        throw ex;
    }

и

 try {
        Realm.deleteRealmFile(getActivity());
        //Realm file has been deleted.
    } catch (Exception ex){
        ex.printStackTrace();
        //No Realm file to remove.
    }

но ни один из кодов не работает. Спасибо заранее.

2 ответов


когда вы называете Realm.deleteRealm(), вы должны убедиться, что все экземпляры Realm закрыты, иначе будет создано исключение без удаления чего-либо. При вызове этого метода все файлы Realm удаляются, что означает, что все объекты и схемы исчезли. Ловить все исключения-плохая практика для любых общих случаев.

или вы можете позвонить Realm.delelteAll() в блоке транзакции. Это не требует закрытия всех экземпляров Realm. Он просто удалит все объекты в Царстве без очистки схем. И опять же, не ловите все исключения.


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