2016-03-09 119 views
0

Realm的初始化有问题。 我得到系统性的误差:Android Realm如何检查Realm是否已初始化

 Realm realminstance = Realm.getDefaultInstance(); 

我抓住了这个异常:

No default RealmConfiguration was found. Call setDefaultConfiguration() first 

我知道我必须在使用前初始化境界,但你能告诉我,我怎么能检查是否境界初始化? 它不适用于:

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

非常感谢。

+0

如果你设置'application.onCreate()'的默认配置这应该也不会发生,虽然'getFilesDir()'可以返回'null'有时第一次运行,可以肯定地拧它...... – EpicPandaForce

回答

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(); 
    } 
} 
+0

感谢您的回答,但问题是,我不能初始化领域配置,直到用户没有登录。 (我管理多个用户应用程序)。所以我的mainActivity被加载,并且loginActivity被加载。而且我必须在我的mainActivity中测试,如果Realm被初始化,如果没有,我强制用户登录 – ElFrancky

+0

@ElFrancky老实说,你可以在你调用Realm后在你的自定义应用程序中管理一个'boolean'标志。 setDefaultInstance()' – EpicPandaForce

+0

@EpicPandaForce为什么不,这是一个解决方案:)谢谢 – ElFrancky

相关问题