我在Android上使用RXJava异步访问数据库.
我想在我的数据库中保存一个对象.通过这种方式,我创建了一个方法,它接受一个最终参数(我想要保存的对象)并返回一个Observable.
在这一点上,我不在乎发射任何东西,所以我最后会打电话subscriber.onComplete()
.
这是我的代码:
public Observable saveEventLog(@NonNull final EventLog eventLog) { return Observable.create(new Observable.OnSubscribe
问题是,我看到许多人使用参数的final关键字回答,但我想在没有它的情况下这样做.原因是我不喜欢声明一个final变量的方法,以便在另一个线程中使用它.
还有其他选择吗?谢谢.
我们通常建议避免使用create
它,因为使用它似乎很简单,但它们通常违反了RxJava的高级要求.相反,您应该使用其中一种工厂方法Observable
.在您的情况下,just
工厂方法将获得您想要的:没有最终参数:
public Observable> saveEventLog(@NonNull EventLog eventLog) { return Observable .just(eventLog) .doOnNext(e -> { DBEventLog log = new DBEventLog(e); log.save(); }) .ignoreElements(); }