RxAndroid的责任链

时间:2016-02-19 07:15:20

标签: android rx-java

我想根据参数连续运行三个任务。最初,我用asynctask实现了这个想法,但问题很多。我想将这个想法改为RxJava,但我不知道如何实现它。

  

任务A(参数:整数,响应:字符串[])

     

任务B(参数:String [],响应:长)

     

任务C(参数:long,响应:布尔值)

     

任务A - > B - > ç

任何人都可以给我一个简单的例子来实现它吗?谢谢。

我发现这个库很有用,但我不确定如何实现它。

1 个答案:

答案 0 :(得分:1)

 public void main() {
        Observable.just(yourFirstMethod(42))
                .map(strings -> yourSecondMethod(strings))
                .map(aLong -> yourThirdMethod(aLong))
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(aBoolean -> { 
                    ...
                }, throwable -> {
                    throwable.printStackTrace();
                });
    }

    public String[] yourFirstMethod(int param) {
        ...
    }

    public long yourSecondMethod(String[] param) {
        ...
    }

    public boolean yourThirdMethod(long param) {
        ...
    }