我对Realm的初始化有问题。 我系统地出错:
Realm realminstance = Realm.getDefaultInstance();
我发现了这个例外:
No default RealmConfiguration was found. Call setDefaultConfiguration() first
我知道我必须在使用之前初始化Realm,但是你能告诉我如何检查Realm是否已初始化? 它不适用于:
if(Realm.getDefaultConfiguration == null){...}
非常感谢。
答案 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();
}`