我們已經開始將Realm集成到我們的android項目中,並且遇到了一個小問題。 我們重新寫我們的DAO與境界,像這樣的例子:用關閉的交易書寫道域012
public class RealmAuthDao {
public static RealmAuthToken getAuthToken() {
Realm realm = RealmFactory.getAuthInstance();
RealmAuthToken token = realm.where(RealmAuthToken.class).findFirst();
return token;
}
但每隔幾分鐘得到了以下異常 -
「不可恢復的錯誤打開的文件太多的io_realm_internal_SharedGroup.cpp。 「
我們已經意識到,我們需要關閉,我們已經在整個應用程序打開的每個領域實例,所以我們嘗試這樣做:
public class RealmAuthDao {
public static RealmAuthToken getAuthToken() {
Realm realm = RealmFactory.getAuthInstance();
RealmAuthToken token = realm.where(RealmAuthToken.class).findFirst();
realm.close // close the instance we were using
return token;
}
但是,當我們這樣做時,無論何時我們嘗試訪問我們查詢的對象的成員或屬性,它都會失效,並拋出以下異常:
「此Realm實例已關閉,使其無法使用。 「
有沒有一種合適的方法來實現道界?或者我們應該每次直接從領域實例中進行查詢?