我仍在努力理解 RxJava 中的观察者。我有一个 Retrofit 客户端、一个实用方法和一个管理数据同步功能的类。当我尝试观察我的可观察对象时,我没有看到任何指示表明观察者已订阅。
我的实用方法如下:
public static Single<Response<SyncResponse>> getSyncData() {
Single response = FestApiClient.getInstance().postSyncData()
.observeOn(Schedulers.newThread())
.subscribeOn(AndroidSchedulers.mainThread());
return response;
}
我的Retrofit客户端
public Single<Response<SyncResponse>> postSyncData() {
Single response = mFestApiClientService.postEventSyncList("my endpoint");
return response;
}
我的数据同步管理器
Disposable syncDisposable = ScheduleUtils.getSyncData().subscribe(syncResponse -> {
if (syncResponse.isSuccessful()){
Log.d(TAG, "Successfully posted events!");
addEventsFromSync(syncResponse.body());
mSyncDialog.dismiss();
} else {
getFailureMessage(syncResponse.body());
Log.d(TAG, "Failed posting events");
}
}, throwable -> {
Log.d(TAG, "Failed posting events");
});
mCompositeDisposable.add(syncDisposable);
我认为syncResponse.onFailure和onSuccess方法会被触发,但是我从未看到日志消息或命中断点。如果您发现任何问题,请告诉我。谢谢!
add
操作之前,mCompositeDisposable.isDisposed()
的值是多少? - akarnokdCompositeDisposable mCompositeDisposable = new CompositeDisposable();
- Dan SchneidermCompositeDisposable.add(syncDisposable);
之前添加System.out.println(mCompositeDisposable.isDisposed());
并告诉我们它在控制台上打印的内容。 - akarnokdmCompositeDisposable: false
。 - Dan Schneider