我是RxLifecycle的新手,我们正从CompositeSubscription转向管理自动退订,以依靠RxLifecycle。我有个问题。如果我有7个网络呼叫,并且每个呼叫都使用一个单独的Subscriptions进行跟踪,您能否告诉我是否可以使用bindUntilEvent()从RxFragment使用相同的BehaviourSubject,还是必须为每个Subscribe Observables定义7个BehaviourSubject?

最佳答案

我从他们的源代码中弄清楚了。如您在下面看到的,每次我调用bindUntilEvent()时,它们都会更新。因此,如果我们实现ActivityLifecycleProvider或FragmentLifecycleProvider并调用相同的bindUntilEvent(),则对所有Observable都可以正常工作。

@NonNull
@CheckResult
public static <T, R> LifecycleTransformer<T> bindUntilEvent(@NonNull final Observable<R> lifecycle,
                                                            @NonNull final R event) {
    checkNotNull(lifecycle, "lifecycle == null");
    checkNotNull(event, "event == null");

    return new UntilEventObservableTransformer<>(lifecycle, event);
}

10-05 22:24