CompositeDisposable中的clear()崩溃应用程序,在CompositeSubscription工作中清除

时间:2017-04-02 22:59:34

标签: android rx-java rx-java2

我将应用程序从RxJava1迁移到RxJava2

在RxJava1中我有这段代码

this.subscriptions = new CompositeSubscription();
if (subscriptions.hasSubscriptions()) subscriptions.clear();

在RxJava中我有这段代码

this.disposables = new CompositeDisposable();
if (disposables.size() != 0) disposables.clear();

不幸的是,现在我遇到了这个例外的问题:

io.reactivex.exceptions.UndeliverableException: java.net.SocketException: Socket closed
                                                                              at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:366)
                                                                              at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:83)
                                                                              at eu.szwiec.realtimetweets.networking.Service$1.subscribe(Service.java:41)
                                                                              at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual(ObservableCreate.java:40)
                                                                              at io.reactivex.Observable.subscribe(Observable.java:10841)
                                                                              at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)
                                                                              at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)
                                                                              at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)
                                                                              at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)
                                                                              at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)
                                                                              at io.reactivex.Observable.subscribe(Observable.java:10841)
                                                                              at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
                                                                              at io.reactivex.Observable.subscribe(Observable.java:10841)
                                                                              at io.reactivex.internal.operators.observable.ObservableFlatMap.subscribeActual(ObservableFlatMap.java:55)
                                                                              at io.reactivex.Observable.subscribe(Observable.java:10841)
                                                                              at io.reactivex.internal.operators.observable.ObservableOnErrorNext.subscribeActual(ObservableOnErrorNext.java:38)
                                                                              at io.reactivex.Observable.subscribe(Observable.java:10841)
                                                                              at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)
                                                                              at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:451)
                                                                              at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)
                                                                              at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)
                                                                              at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
                                                                              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                              at java.lang.Thread.run(Thread.java:761)
                                                                           Caused by: java.net.SocketException: Socket closed

0 个答案:

没有答案