2016-03-09 58 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

相關問題