Reputation: 154
when I return query results as observable, where I must close realm instance? Example:
public Observable<RealmResults<Weather>> getWeatherForecast() {
final Realm realm = Realm.getDefaultInstance();
return realm.where(Weather.class).findAllAsync().asObservable()
.filter(RealmResults::isLoaded);
}
Upvotes: 2
Views: 793
Reputation: 20268
There are a couple of cases:
doOnCompleted
operator:
realm.where(Weather.class).findAllAsync().asObservable()
.filter(RealmResults::isLoaded)
.first()
.doOnCompleted(new Action0() {
@Override
public void call() {
realm.close();
};
})
Inside Subscriber
's onCompleted
method:
getWeatherForecast()
.subscribe(new Subscriber<Boolean>() {
@Override
public void onCompleted() {
realm.close();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Boolean aBoolean) {
}
});
Upvotes: 2