Android Realm如何检查Realm是否已初始化

时间:2016-03-09 10:41:47

标签: android realm

我对Realm的初始化有问题。 我系统地出错:

        Realm realminstance = Realm.getDefaultInstance();

我发现了这个例外:

No default RealmConfiguration was found. Call setDefaultConfiguration() first

我知道我必须在使用之前初始化Realm,但是你能告诉我如何检查Realm是否已初始化? 它不适用于:

if(Realm.getDefaultConfiguration == null){...}

非常感谢。

2 个答案:

答案 0 :(得分:0)

此处的代码段应该有效:https://realm.io/docs/java/latest/#controlling-the-lifecycle-of-realm-instances

// Setup Realm in your Application
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this).build();
        Realm.setDefaultConfiguration(realmConfiguration);
    }
}

public class MyActivity extends Activity {
    private Realm realm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        realm = Realm.getDefaultInstance();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        realm.close();
    }
}

答案 1 :(得分:0)

您可以使用try catch块。我最初在应用程序类中初始化了我的领域,并在内容提供程序和同步适配器中使用了它,但是该提供程序显然是在应用程序之前创建的,因此我被迫尝试全部尝试3种操作,以避免可能发生的竞争情况(无法找不到有关首先在组件中创建的内容的文档。如果您知道,请帮助)。

`try{
realm = Realm.getDefaultInstance();
} catch (Exception e){
Realm.init()
//Configuration, schema, migration, and encryption details come here
//Now we get the default instance: again.
realm = Realm.getDefaultInstance();
}`