使用 RxView.clicks(订阅不起作用)

Use RxView.clicks (subscribe does not work)

我是响应式编程(RxJava 和 RxAndroid)的新手。我想使用 RxView.clicks() 而不是点击监听器。我将一个 Button 放入主层并使用 Butterknife 和 onCreate 方法 Main activity 我写了这个语句:

**//onCreate**
ButterKnife.bind(this);

RxView.clicks(btn_range)
       .switchMap(new Function<Object, Observable<Integer>>() {
        @Override
        public Observable<Integer> apply(Object o) throws Exception {
                return Observable.range(1,10);
            }
        })
        .subscribe(new Observer<Integer>() {
             @Override
             public void onSubscribe(Disposable d) {
                 d.dispose();
             }

             @Override
             public void onNext(Integer integer) {
                Toast.makeText(MainActivity.this, integer+"", Toast.LENGTH_SHORT).show();
             }

            @Override
            public void onError(Throwable e) {
                Toast.makeText(MainActivity.this, e.getMessage()+"", Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onComplete() {

            }
     });

但是当我运行它时,没有吐司出现。

我已将我的点击侦听器转换为可观察对象,然后将可观察对象更改为整数范围,最后显示它。

在您的 .subscribe() 中,Observer<Integer> 会在订阅后立即调用 d.dispose()

因此,如果您的链条被处理掉,那么它就无法再工作了。 Disposable 当你不再需要流量时应该被释放。

您可以存储发出的 Disposable 并将其放置在您订阅它的相反生命周期事件回调中。