android – 将API调用与RX Java结合使用

我是RX Java的新手,我无法理解如何将API调用的结果链接在一起.

我正在使用改造A和B进行两次API调用,它们都返回一个可观察的对象列表.两个API调用都是独立的,所以我想同时制作两个,但要实现我的最终结果,我需要先取结果A,做一些工作,然后将其与B的结果结合起来填充我的列表适配器.

>进行API调用A.
>制作API调用B.
>获取A的结果并创建结果X.
>获取B X的结果并填充适配器

@GET("/{object_id}/object_a")
    Observable<List<Object_A>> getobjectAList(
        @Path("object_id") long object_id);


@GET("/{object_id}/object_b")
    Observable<List<Object_B>> getobjectBList(
        @Path("object_id") long object_id);

这是我试图使用RX java迷路的地方.我可以把api的结果叫做A并做我的工作
但我不知道如何获取我刚刚生成的结果并将其与API Call B结合起来.

aService. getobjectAList(object_a.getID())
            .subscribeOn(AndroidSchedulers.mainThread())
            .observeOn(AndroidSchedulers.main)
            .subscribe(new Action1<List<Object_A>>() {

                @Override
                public void call(List<Section> sections) {
                    // Do Stuff Here...
                    // Now i need to take this result and combine it with API Call B...
                }
            });

我想同时进行两个API调用,但我不确定如何链接在一起并组合API调用.任何帮助都是值得赞赏的.

解决方法

像这样的东西?
Observable
        // make api call for A list and B list
        .combineLatest(getobjectAList(),getobjectBList(),new Func2<List<Object_A>,List<Object_B>,Object>() {
            @Override
            public Object call(List<Object_A> o,List<Object_B> o2) {
                // Do what you need to do in the background thread
                List x = createX(o);
                List y = createY(x,o2);
                return y;
            }
        })
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Observer<Object>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(Object y) {
                // UI thread,do what you need e.g. renders the list
                mAdapter.setList(y);
            }
        });

注意更换合适的类型应该让你非常接近解决方案.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...