如何在rxjava2中使用Flowable?

如何在rxjava2中使用Flowable?,java,android,rx-java,rx-android,Java,Android,Rx Java,Rx Android,RxJava2中引入了新的Flowable。如何在android中使用此功能。RxJava1中没有可流动性。公共类可流动性ExampleActivity扩展AppCompativity{ public class FlowableExampleActivity extends AppCompatActivity { private static final String TAG = FlowableExampleActivity.class.getSimpleName(); B

RxJava2中引入了新的Flowable。如何在android中使用此功能。RxJava1中没有可流动性。

公共类可流动性ExampleActivity扩展AppCompativity{
public class FlowableExampleActivity extends AppCompatActivity {

    private static final String TAG = FlowableExampleActivity.class.getSimpleName();
    Button btn;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        btn = (Button) findViewById(R.id.btn);
        textView = (TextView) findViewById(R.id.textView);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                doSomeWork();
            }
        });
    }

    /*
     * simple example using Flowable
     */
    private void doSomeWork() {

        Flowable<Integer> observable = Flowable.just(1, 2, 3, 4);

        observable.reduce(50, new BiFunction<Integer, Integer, Integer>() {
            @Override
            public Integer apply(Integer t1, Integer t2) {
                return t1 + t2;
            }
        }).subscribe(getObserver());

    }

    private SingleObserver<Integer> getObserver() {

     return new SingleObserver<Integer>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, " onSubscribe : " + d.isDisposed());
        }

        @Override
        public void onSuccess(Integer value) {
            Log.d(TAG, " onSuccess : value : " + value);
        }

        @Override
        public void onError(Throwable e) {
            Log.d(TAG, " onError : " + e.getMessage());
        }
    };
}
}
私有静态最终字符串标记=FlowableExampleActivity.class.getSimpleName(); 按钮btn; 文本视图文本视图; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_示例); btn=(按钮)findViewById(R.id.btn); textView=(textView)findViewById(R.id.textView); btn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ doSomeWork(); } }); } /* *使用Flowable的简单示例 */ 私人文件{ 可流动可观察=可流动。仅(1,2,3,4); 可观察的。减少(50,新的双功能(){ @凌驾 公共整数应用(整数t1、整数t2){ 返回t1+t2; } }).subscribe(getObserver()); } 私有单观察员getObserver(){ 返回新的SingleObserver(){ @凌驾 认购的公共无效(一次性d){ Log.d(标记为“onSubscribe:+d.isDisposed()); } @凌驾 成功时的公共void(整数值){ Log.d(标记“onSuccess:value:”+value); } @凌驾 公共无效申报人(可丢弃的e){ Log.d(标记“onError:+e.getMessage()); } }; } }

我有一个创建示例项目来演示RxJava2的使用。在这里你可以找到

这是它在文档中所说的

实际上,1.x fromEmitter(以前是fromAsync)已被重命名 创建。其他基本无功类型具有类似的特性 方法(减去背压策略)

因此,您可以使用与
fromEmitter
fromAsync


如何学习RxJava2的所有功能?它包含如此多的API。我不知道开发android应用程序需要学习哪些东西。