正确使用Subscriber.onStart

时间:2015-09-09 13:21:07

标签: java android rx-java

我考虑使用Subscriber.onStart来显示进度指示器,然后将其隐藏在onCompleted中。

private class MySubscriber extends Subscriber<Boolean> {

    @Override
    public void onCompleted() {
        mProgressBar.setVisibility(View.GONE);
    }

    @Override
    public void onError(Throwable throwable) {
        mProgressBar.setVisibility(View.GONE);
    }

    @Override
    public void onNext(Boolean aBool) {
    }

    @Override
    public void onStart() {
        mProgressBar.setVisibility(View.VISIBLE);
    }
}

关于这一点的好处是进度指示器完全耦合到订户的生命周期。我不完全确定这是否是这种方法的预期用法。 javadocs只提到背压和&#34;有用的初始化&#34;。我用这种方法看到的一个问题是,如果我观察到的Observable恰好在某个地方有delaySubscription,那么onStart就不会被调用,直到延迟,如果它是一个进度指示器就不好。

另一种方法是在订阅Observable之前显示进度指示器。这有效,但分散了进度指示器的责任。

为此使用onStart是否正确?

0 个答案:

没有答案