Android 使用RxJava发出quickbloxapi请求

Android 使用RxJava发出quickbloxapi请求,android,rx-java,quickblox,Android,Rx Java,Quickblox,我正在尝试使用与的组合来进行一些链式和基于时间的Quickblox API调用。API已经有异步方法。以下是其中两个: 创建会话: QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() { @Override public void onSuccess(QBSession session, Bundle params) { }

我正在尝试使用与的组合来进行一些链式和基于时间的Quickblox API调用。API已经有异步方法。以下是其中两个:

创建会话:

QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {

            @Override
            public void onSuccess(QBSession session, Bundle params) {


            }

            @Override
            public void onError(List<String> errors) {


            }
        });
QBAuth.createSession(新的QBEntityCallbackImpl(){
@凌驾
成功时公共无效(QBSession会话,Bundle参数){
}
@凌驾
公共无效onError(列表错误){
}
});
创建一个对话框(聊天室)

QBChatService.getInstance().getGroupChatManager().createDialog(qbDialog,
新的QBEntityCallbackImpl(){
@凌驾
成功时公共无效(QB对话框,捆绑参数){
}
@凌驾
公共无效onError(列表错误){
}
});
如您所见,每个API调用都必须有一个回调实现作为方法参数。问题是我必须进行一些链式API调用。例如:

  • 创建空会话,然后
  • 那么请登录
  • 检索用户信息,然后
  • 登录聊天室服务,然后
  • 我搜索了一下RxJava,发现解决这种问题很好,因为在进行下一次API调用之前,可以应用一些过滤器和其他东西。问题是我不知道如何使这个API适应RxJava

    • 带有回调的API调用是否应该在
      可观察的
      调用()方法中

    • Quickblox API的
      onError()
      onSuccess()
      方法是否应该调用
      订阅者的
      onError()
      onNext()
      /
      onCompleted()
      方法

    有谁能举一些例子来说明 RxJava创建会话,然后使用
    提供了创建会话创建对话框API方法?

    以下是一个示例,说明如何在您的案例中使用
    observatable.create()
    创建可观察对象:

    Observable connectionObservable=Observable.create(newonsubscribe()){
    @凌驾
    
    public void call(subscriberTanks@Android777!在这种情况下,如果我想链接调用,我应该使用flatMap组合观察对象吗?@regmoraes是的,类似这样:
    connectionObservable.flatMap((Func1)qbSession->dialogCreationObservable);
    QBChatService.getInstance().getGroupChatManager().createDialog(qbDialog,
                new QBEntityCallbackImpl<QBDialog>() {
    
                    @Override
                    public void onSuccess(QBDialog dialog, Bundle args) {
    
    
                    }
    
                    @Override
                    public void onError(List<String> errors) {
    
    
                    }
                });