Сетевой запрос не выполняется успешно при использовании runnable - PullRequest
0 голосов
/ 26 ноября 2018

Я использую Retrofit2 и RxJava2 для сетевых запросов.

У меня есть простой исполняемый файл, который включает в себя:

override fun run() {
    handler.postDelayed(this, interval)
    DummyService.syncData(context, null)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe( response -> {
                    //nothing
                }, e -> {
                    //nothing
                });
}

И моя функция syncData выглядитвот так:

fun syncData(): Single<Unit> {
    Log.d("...", "sync before")
    return service.test(null)
                .onErrorResumeNext(ErrorHandler(BaseErrorParser()))
                .map { jsonApiObject ->
                     Log.d("...", "sync WHOLE DATA")


                    ....
                }
}

В журнале я вижу, что работоспособность работает хорошо - вызывается syncData(), и я вижу в логах сообщение "sync before", но я не вижу "sync WHOLE DATA".Я попытался установить точку останова - она ​​показывает проверку (как это было там, но отладчик никогда не останавливает [попадание] этой точки на самом деле).Я вижу, что сетевой запрос выполняется, но не удается.Это почему?Если я вызываю ту же самую функцию нормально (не из runnable), она работает нормально.

1 Ответ

0 голосов
/ 26 ноября 2018

ваша syncData функция возвращает Single объект.Вы должны выполнить это к

DummyService.syncData(context, null).subscribe(response -> {

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...