java - 当我将 Realm 查询与 RxJava 一起使用时,关闭 Realm 实例

标签 java android realm rx-java

当我将查询结果返回为可观察时,我必须在哪里关闭 Realm 实例?示例:

public Observable<RealmResults<Weather>> getWeatherForecast() {
       final Realm realm = Realm.getDefaultInstance(); 

       return realm.where(Weather.class).findAllAsync().asObservable()
                .filter(RealmResults::isLoaded);
}

最佳答案

有几种情况:

  1. doOnCompleted运算符:

    realm.where(Weather.class).findAllAsync().asObservable()
            .filter(RealmResults::isLoaded)
            .first()
            .doOnCompleted(new Action0() {
                 @Override
                 public void call() {
                     realm.close();
                 };
            })
    
  2. SubscriberonCompleted 方法中:

    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/

相关文章:

java - 新安装时出现 nullpointerException 错误

java - 设置 Java 多线程亲和性

java - 如何在android或Java中使用调试器?

android - 在 Android 中显示 ListView 的有效方法

Android:如何在 AlertDialog 中获得带有图像的复选框列表

swift - 境界 0.99 Swift 让境界 = 试试! Realm ()

java - Spring MVC/Maven 中的注释不起作用

java - 可运行 jar 中的 ElasticSearch : lucene problems

swift - 带有基于 iOS 的 WatchKit-Extension 的 RealmSwift-1.2 和 iOS-9(全部在 iPhone 上)

ios - 返回对象 Realm 不可访问