gpt4 book ai didi

android - 将参数传递给 Observable.create

转载 作者:行者123 更新时间:2023-11-29 14:46:40 24 4
gpt4 key购买 nike

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

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

此时我不想发出任何东西,所以我会在最后调用 subscriber.onComplete()

这是我的代码:

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

问题是,我看到很多答案都使用 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();
}

关于android - 将参数传递给 Observable.create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34201353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com