Ich habe versucht, Realm-Objekte zu vermeiden, in meiner Android-Anwendung für jedes Fragment. Ich denke, ThreadLocalVariable könnte ein guter Anfang sein.Wie man richtig Realm verwendet
public class RealmInstanceGenerator extends ThreadLocal<Realm> {
public Realm getRealmForMyThread(Context context) {
if(get() == null && context != null)
super.set(Realm.getInstance(context));
return get();
}
public void setRealmForCurrentThread(Context context) {
if(context != null)
super.set(Realm.getInstance(context));
}
@Override
protected Realm initialValue() {
return null;
}
@Override
public void remove() {
if(get() != null) get().close();
super.remove();
}
}
Ich würde nur ein statisches Endziel RealmInstanceGenerator in meiner utils Singletonklasse und rufen setRealmForCurrentThread in meinem MainActivity erstellen. Dann werde ich entfernen, wenn meine Aktivität stirbt. Für jeden neuen Thread wird automatisch ein neues Realm-Objekt generiert. Ist es eine gute Strategie?
Ich schrieb [dieses Handbuch für Realm 1.2.0] (https://medium.com/@Zhuinden/basics-of-realm-a-guide-to-using-realm-1-2-0-0634471c0fe8f#.sltph3ynl) – EpicPandaForce