当前位置: 首页 > 知识库问答 >
问题:

如何使用RXJava2的CompositeDisposable?

司徒良哲
2023-03-14

在RXJava1中,有CompositeSubscription,但在RxJava2中没有,在RxJava2中有CompositeDisable。我如何在RXJava2中使用CompositeDisposable或Disposable?

共有1个答案

郎鸿朗
2023-03-14
private final CompositeDisposable disposables = new CompositeDisposable();


// adding an Observable to the disposable
disposables.add(sampleObservable()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(new DisposableObserver<String>() {
                    @Override
                    public void onComplete() {
                    }

                    @Override
                    public void onError(Throwable e) {
                    }

                    @Override
                    public void onNext(String value) {
                    }
                }));

    static Observable<String> sampleObservable() {
        return Observable.defer(new Callable<ObservableSource<? extends String>>() {
            @Override
            public ObservableSource<? extends String> call() throws Exception {
                // Do some long running operation
                SystemClock.sleep(2000);
                return Observable.just("one", "two", "three", "four", "five");
            }
        });
    }                


// Using clear will clear all, but can accept new disposable
disposables.clear(); 
// Using dispose will clear all and set isDisposed = true, so it will not accept any new disposable
disposables.dispose(); 

我创建了一个示例项目来演示RXJava2的使用。在这里可以找到示例项目-RxJava2-Android-Samples

 类似资料:
  • 我使用Reformation2和RxJava2从服务器获取数据。我有以下格式的回复: 我得到以下异常: ApiService.class RetrofitClient.class 现在我正在使用如下的一些东西来获取数据: 有人请让我知道为什么我得到这个exception.Any帮助将不胜感激。 谢谢

  • 我有一个API,我需要从标头中提取信息并进行另一次调用。我已经尝试了许多方法,但似乎无法仅获取标头。没有其他响应。 我尝试过让它返回各种响应对象,例如okhttp3标头,Retrofit标头,HttpHeaders等,但首先获得EOF。 任何人都可以告诉我我需要如何构建我的api调用来获取标头吗?

  • 我正在Android中使用以下rxjava依赖项: 我正在尝试创建一个方法,它将把观察者作为参数。我有一些问题,我想是因为这是rxjava2,所以东西更新了,我有点困惑。 让我向你展示我想要完成的事情: 那么如何保存一次性,这样我们就可以退订了呢?

  • 我有一个自定义对象列表(

  • 我使用Room和RxJava,我想使用第二个的功能来过滤来自第一个的数据。 假设房间是返回用户。 谢谢

  • 我正在android中学习RxJava2。谁能解释一下,我们如何使用RxJava2将数据插入SQLiteDatabase。这里是我试图使用的代码示例,但它将数据插入数据库六次; //OnClick(单击) //可观察 //观察员 //添加方法