gpt4 book ai didi

java - 使用 rxjava 从实现可观察外部调用方法的自定义类发送事件

转载 作者:行者123 更新时间:2023-11-30 01:38:54 24 4
gpt4 key购买 nike

我有一些监听器在一个扩展 Observable.OnSubscribe 的 volley 请求上,我想在到达这些方法时使用 rxjava 发出一条消息。基本上我有:

public class CallListener implements Observable.OnSubscribe<Boolean>{

Boolean success;

public void onSucess() {
success = true;
// need to call call()
}

public void onError() {
success = false;
// need to call call()
}

@Override
public void call(Subscriber<? super Boolean> subscriber) {
// How can i call this method from onSuccess and onError ?
subscriber.onNext(success);
subscriber.onCompleted();
}


}

如何从 onSuccess 和 onError 调用 call() 方法?我的目标是使用一个观察者来链接 callListeners,它们基本上是每个请求的 UI Controller (创建加载、提供错误处理、保存 json),而不必创建第三个类只是为了使 callListener 成为可观察的(我想发出消息直接来自 CallListener)。提前致谢。

最佳答案

我不完全理解您的用例。但是,如果您只是尝试从成功/失败方法调用 onNext 和 onComplete 方法,您可能只需保留订阅引用并在需要时使用它。

  public class CallListener implements Observable.OnSubscribe<Boolean>{

Boolean success;
Subscriber<? super Boolean> subscriber;

public void onSuccess() {
success = true;
// need to call callOnNext()
callOnNext();
}

public void onError() {
success = false;
// need to call callOnNext()
callOnNext();
}

@Override
public void call(Subscriber<? super Boolean> subscriber) {
this.subscriber = subscriber;
}

private void callOnNext(){
if(subscriber != null && !subscriber.isUnsubscribed()){
subscriber.onNext(success);
subscriber.onCompleted();
subscriber = null;
}
}
}

关于java - 使用 rxjava 从实现可观察外部调用方法的自定义类发送事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776592/

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