当前位置: 首页 > 面试题库 >

如何使用RxJava 2的CompositeDisposable?

潘灵均
2023-03-14
问题内容

在RxJava
1中,有CompositeSubscription,但在RxJava2中不存在,在rxJava2中有CompositeDisposable。如何在RxJava2中使用CompositeDisposable或Disposable?


问题答案:
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



 类似资料:
  • 在RXJava1中,有CompositeSubscription,但在RxJava2中没有,在RxJava2中有CompositeDisable。我如何在RXJava2中使用CompositeDisposable或Disposable?

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

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

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

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

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

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

  • 问题内容: 我有两个完成。我想做以下情形:如果第一个Completable到达onComplete,则继续第二个Completable。最终结果将是第二完成的onComplete。 当我有单个 getUserIdAlreadySavedInDevice() 和Completable login() 时,这就是我的方法: 问题答案: 您正在寻找运营商。 返回一个Completable,它首先运行此C