How to use CompositeDisposable of RxJava 2?

前端 未结 3 525
心在旅途
心在旅途 2021-01-30 03:17

In RxJava 1, there was CompositeSubscription, but that is not present in RxJava2, There is something CompositeDisposable in rxJava2. How do I use CompositeDisposable or Disposab

3条回答
  •  北海茫月
    2021-01-30 03:45

    private final CompositeDisposable disposables = new CompositeDisposable();
    
    
    // adding an Observable to the disposable
    disposables.add(sampleObservable()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribeWith(new DisposableObserver() {
                        @Override
                        public void onComplete() {
                        }
    
                        @Override
                        public void onError(Throwable e) {
                        }
    
                        @Override
                        public void onNext(String value) {
                        }
                    }));
    
        static Observable sampleObservable() {
            return Observable.defer(new Callable>() {
                @Override
                public ObservableSource 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(); 
    

    I have created a sample project to demonstrate the use of RxJava2. Here you can find the sample project - RxJava2-Android-Samples

提交回复
热议问题