如何在realm android中截断所有表

Din*_*inu 7 android realm

嗨我试图在用户注销时截断android中的所有表.我只使用领域默认路径.

realm = Realm.getInstance(getApplicationContext());

public void clearDB() {
    Realm.deleteRealmFile(instance);
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ior 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);
     }
  });
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多内容:http://realm.io/docs/java/0.77.0/api/io/realm/Realm.html#clear(java.lang.Class)

  • @ChristianMelchior`clear()`已弃用 (3认同)

小智 10

使用realm.delete(Myclass.class);

realm = Realm.getDefaultInstance();

    realm.beginTransaction();
    realm.delete(SuggestedAppDto.class);
    realm.delete(WifiSpotsDto.class);
    realm.commitTransaction();
    realm.close();
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Art*_*ens 8

如果要清除所有表,可以考虑使用realm.deleteAll()方法:

Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.deleteAll();
realm.commitTransaction();
realm.close();
Run Code Online (Sandbox Code Playgroud)