在RxJava上使用.dispose()时会发生什么?

时间:2018-02-06 17:46:01

标签: java android android-studio rx-android

我一直在使用.dispose()强制关闭我的观察者,以防我进入另一个视图。我这样做是因为我有时会在订阅结束之前进入新活动。但是,在使用它时,即使我尝试再次启动观察者,我也会在活动期间永久禁用观察者。那么正式地说,yourObserverName.dispose()真的会破坏未来的功能吗?如果是这样,我是否有更好的方法来结束观察者,以便在我再次调用它时可重复使用?

这是我的代码:

private void setupCoin() {
    Log.d("Video Play", "---Making Coin ---");
    Completable.timer(5, TimeUnit.SECONDS, AndroidSchedulers.mainThread()).subscribe(displayCoinObserver);
}

// I erase all the observers here. I am able to prevent crashing but If I call the observers again, i cannot create my coin again, thus my observers are no longer working . 

public void disposeAllObservers() {
    Log.d("Video Play", "---Erase Observable---");
    displayCoinObserver.dispose();
    waitForCoinClickObserver.dispose();
}

0 个答案:

没有答案