当我将查询结果返回为可观察时,我必须在哪里关闭 Realm 实例?示例:
public Observable<RealmResults<Weather>> getWeatherForecast() {
final Realm realm = Realm.getDefaultInstance();
return realm.where(Weather.class).findAllAsync().asObservable()
.filter(RealmResults::isLoaded);
}
最佳答案
有几种情况:
doOnCompleted
运算符:realm.where(Weather.class).findAllAsync().asObservable() .filter(RealmResults::isLoaded) .first() .doOnCompleted(new Action0() { @Override public void call() { realm.close(); }; })
在
Subscriber
的onCompleted
方法中:getWeatherForecast() .subscribe(new Subscriber<Boolean>() { @Override public void onCompleted() { realm.close(); } @Override public void onError(Throwable e) { } @Override public void onNext(Boolean aBoolean) { } });
关于java - 当我将 Realm 查询与 RxJava 一起使用时,关闭 Realm 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39742722/