在删除数据库之前检查是否有任何域实例正在运行

时间:2018-04-23 23:24:08

标签: android realm

如何检查所有领域实例是否已关闭?

我想在删除数据库之前检查是否有任何域实例正在运行..我想知道有多少实例是打开的。

我已经

getGlobalInstanceCount(myRealm.getConfiguration());


 public static int getGlobalInstanceCount(RealmConfiguration configuration){
    //How do I convert the configuration to int? so that I return the number of open stores
    return  **;
}

我不知道如何将RealmConfiguration转换为Int。返回号码

2 个答案:

答案 0 :(得分:1)

如果要安全删除领域数据库..

  1. 如果您正在使用,请删除所有听众。

     try (Realm realm = Realm.getDefaultInstance()) {
    
        realm.executeTransaction(innerRealm -> {
    
        innerRealm.where(DatabaseClass.class)
                .findAll().deleteAllFromRealm();
    
        // or
    
        innerRealm.delete(DatabaseClass.class);
    });
    }
    
    1. 如果要删除特定的类/表

      try-with-resourses
  2. 通过这样做,这将在当前线程上创建realm实例并关闭相同的实例。 try (Realm realm = Realm.getDefaultInstance()) { int globalInstance = Realm.getGlobalInstanceCount(realm.getConfiguration()); int localInstance = Realm.getLocalInstanceCount(realm.getConfiguration()); } 自动关闭领域实例。

      

    Realm没有提供立即关闭所有领域实例的技术。您只能获取实例计数。

    • 全局实例和本地实例计数

      {{1}}

答案 1 :(得分:0)

它真的只是Realm.getGlobalInstanceCount(realmConfiguration)