методы наблюдателя никогда не использовались - PullRequest
0 голосов
/ 18 мая 2018

Я все еще пытаюсь выяснить наблюдателей в RxJava.У меня есть клиент Retrofit, служебные методы и класс, который управляет функцией синхронизации данных.Когда я пытаюсь наблюдать мои наблюдаемые, я не вижу никаких признаков того, что наблюдатель подписан.

Мой метод Utility

public static Single<Response<SyncResponse>> getSyncData() {

    Single response = FestApiClient.getInstance().postSyncData()
            .observeOn(Schedulers.newThread())
            .subscribeOn(AndroidSchedulers.mainThread());
    return response;
}

Мой клиент retorfit

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 будут вызваны, но я никогда не вижу сообщений журнала или точек останова попадания.Буду признателен, если вы дадите мне знать, если увидите что-нибудь вонючее.спасибо!

1 Ответ

0 голосов
/ 18 мая 2018

Вы наблюдаете не по той теме.Переключите AndroidSchedulers так, чтобы он был в главном потоке.

public static Single<Response<SyncResponse>> getSyncData() {

     Single response = FestApiClient.getInstance().postSyncData()
             .subscribeOn(Schedulers.io())
             .observeOn(AndroidSchedulers.mainThread());
     return response;
}
...