2016-05-09 6 views
6

Verileri depolamak ve almak için realm kullanıyorum. bazı verileri depolamak için bir alan açmışlardır Genellikle biz seversiniz: Ben krallığını kapatıyorum yukarıdaki durumdaRealm.getDefaultInstance tarafından açılan bölge nasıl kapatılır?

Realm realm = Realm.getDefaultInstance(); 
realm.beginTransaction(); 
// Copy the object to Realm 
realm.copyToRealm(myObject); 
realm.commitTransaction(); 
realm.close(); 

.

Ama gibi bazı verileri alınırken am zaman:

RealmResults<MyClass> results = Realm.getDefaultInstance().where(MyClass.class).findAll(); 

nasıl bu alemi kapatırım? Kapalı olması gerekiyor mu? tek gömlekleri olarak yapmak

cevap

13

Eğer Realm kapatamazsınız, bu yüzden buna karşı tavsiye ederlerdi anlamına gelir.

Diyar iyi durumda bellek sızdırıyor ve arka planda ise sistem tarafından öldürülme olasılığı daha yüksektir ettirmelerine neden kapanış değil. Diyar (nedeniyle MVCC veritabanı olmanın) açılan Realm örneklerinin tüm sürümlerini takip etmek, çünkü kötü durum disk kullanımında yüksek bir artış görecek.

ederim tavsiye ilk desen kullanılarak olacaktır. Diyar örneklerini denetleme hakkında daha fazla bilgi için bunu okuyabilir: https://realm.io/docs/java/latest/#controlling-the-lifecycle-of-realm-instances ve bu https://realm.io/news/threading-deep-dive/

+0

açıklama için teşekkür ederiz. –

+0

Ama LogCat uyarı bağırıyor hakkında 'tüm Realm örneklerinde() yakın aramayı unutmayın neyi. Diyar /data/data/com.foo.bar/files/default.realm Bu yerel memory.' bitmesi yol açabilir, kapalı edilmeden kesinleşmiş ediliyor? – zxcmehran