当前位置:   android > 正文

将参数传递给Observable.create

android,reactive-programming,rx-java,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我在Android上使用RXJava异步访问数据库.

我想在我的数据库中保存一个对象.通过这种方式,我创建了一个方法,它接受一个最终参数(我想要保存的对象)并返回一个Observable.

在这一点上,我不在乎发射任何东西,所以我最后会打电话subscriber.onComplete().

这是我的代码:

public Observable saveEventLog(@NonNull final EventLog eventLog) {
    return Observable.create(new Observable.OnSubscribe() {
        @Override
        public void call(Subscriber subscriber) {
            DBEventLog log = new DBEventLog(eventLog);
            log.save();
            subscriber.onCompleted();
        }
    });
}


问题是,我看到许多人使用参数的final关键字回答,但我想在没有它的情况下这样做.原因是我不喜欢声明一个final变量的方法,以便在另一个线程中使用它.

还有其他选择吗?谢谢.



1> akarnokd..:

我们通常建议避免使用create它,因为使用它似乎很简单,但它们通常违反了RxJava的高级要求.相反,您应该使用其中一种工厂方法Observable.在您的情况下,just工厂方法将获得您想要的:没有最终参数:

public Observable saveEventLog(@NonNull EventLog eventLog) {
    return Observable
    .just(eventLog)
    .doOnNext(e -> {
         DBEventLog log = new DBEventLog(e);
         log.save();
    })
    .ignoreElements();
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/android/detail/19131
推荐阅读
相关标签