我在android中使用以下rxjava依赖项:
import
我正在尝试创建一个将观察者作为参数的方法。我有一些问题,我认为它是因为这是rxjava2所以事情是更新的,我有点困惑。
让我告诉你我想要完成的事情:
compile 'io.reactivex.rxjava2:rxjava:2.1.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
基本上我正在尝试创建一个接受观察者/消费者作为参数的方法,并在改造完成后使用它来更新UI(作为可观察的)。
更新: 好吧,我把它改成一次性用品。现在我想存放我回来的一次性用品,但它不起作用。
private Subscription subscription = Scriptions.empty(); //this isn't working. how to set a empty observer IN RXJAVA2?
protected abstract Observable buildUseCaseObservable(); //RETROFIT WILL BUILD THE OBSERVABLE FOR ME SOMEWHERE ELSE
public void execute(Consumer UseCaseSubscriber){
this.subscription = this.buildUseCaseObservable()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(UseCaseSubscriber); //THIS LINE IS NOT WORKING , ERROR IS IN THE PHOTO
}
public void unsubscribe(){
if(!subscription.isUnsubscribed()){
subscription.unsubscribe();
}
}
我收到以下警告:
我想将整个事物存储在订阅中(或者您推荐的任何其他内容)的原因是我可以随时取消订阅它。
但来自docs:
因为Reactive-Streams基接口,org.reactivestreams.Publisher将subscribe()方法定义为void,所以Flowable.subscribe(Subscriber)不再返回任何Subscription(或Disposable)。其他基本反应类型也遵循此签名及其各自的订户类型。
那么如何保存一次性以便我们可以取消订阅呢?
答案 0 :(得分:2)
Subscription
已重新命名为'使用2.x版本到Disposable
。您可以阅读有关此更改的{rxJava wiki说明here。
那么如何保存一次性所以我们可以取消订阅呢? Flowable.subscribe(Subscriber)
不会返还一次性用户,但Observable.subscribe(Subscriber)
会回复。如果您不需要背压,只需将Flowable
投放到Observable
.toObservable()
。