嗨我试图在用户注销时截断android中的所有表。我只使用领域默认路径。
realm = Realm.getInstance(getApplicationContext());
public void clearDB() {
Realm.deleteRealmFile(instance);
}
答案 0 :(得分:28)
更新
使用realm.delete(Foo.class)
而不建议使用clear()
。从0.91.0起
所有@Deprecated
方法都将被移除。
来自境界的克里斯蒂安。 只要您关闭了所有打开的Realm实例,该方法就会起作用。 另一种方法是清除你想要的表格:
realm = Realm.getInstance(getApplicationContext());
public void clearDB() {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.clear(Foo.class);
realm.clear(Bar.class);
}
});
}
您可以在此处阅读更多内容:http://realm.io/docs/java/0.77.0/api/io/realm/Realm.html#clear(java.lang.Class)
答案 1 :(得分:10)
使用realm.delete(Myclass.class);
realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.delete(SuggestedAppDto.class);
realm.delete(WifiSpotsDto.class);
realm.commitTransaction();
realm.close();
这对我有用。
答案 2 :(得分:7)
如果要清除所有表格,可以考虑使用realm.deleteAll()
方法:
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.deleteAll();
realm.commitTransaction();
realm.close();
答案 3 :(得分:3)
删除所有表格:
Realm.init(fragmentActivity);
RealmConfiguration realmConfig = new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build();
Realm realm = Realm.getInstance(realmConfig);
realm.beginTransaction();
try {
realm.deleteAll();
realm.commitTransaction();
} catch (Exception e) {
e.printStackTrace();
realm.cancelTransaction();
} finally {
realm.close();
}
删除一个或多个表:
public void clearSearchHistory() {
Realm.init(fragmentActivity);
RealmConfiguration realmConfig = new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build();
Realm realm = Realm.getInstance(realmConfig);
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.delete(Foo.class);
}
});
}
答案 4 :(得分:0)
如果要清除所有表而不必担心忘记将来可能创建的新表,请执行此操作
// mRealm is your realm instance
mRealm.beginTransaction();
Set<Class<? extends RealmModel>> tables = mRealm.getConfiguration().getRealmObjectClasses();
for (Class<? extends RealmModel> table : tables) {
mRealm.delete(table);
}
mRealm.commitTransaction();