Выполнение RxJava в ListenableWorker - PullRequest
0 голосов
/ 24 мая 2019

Я использую ListenableWorker, чтобы применить некоторые изменения на моем носителе, а затем создать сообщение на сервере.Все работает хорошо, но есть особый случай, когда api call отправляется на сервер, и пользователь убивает приложение перед возвратом ответа с сервера, тогда хотя сообщение создается на сервере, но сообщение не удаляется из локальной базы данных, поскольку ответ не былполучено.Что приводит к тому, что работник снова начинает загрузку.Как я могу достичь цели, что даже если приложение закрывается, но если сделан вызов API, то ответ должен быть получен для этого.Я мог бы использовать Worker вместо ListenableWorker, но это не отвечает моим потребностям.Может ли помочь изменение потока планировщика, какой правильный выбор?Ниже приведен код:

mCompositeDisposable.add(getDataManager().getApiHelper().createPostApiCall(token, input)
            .subscribeOn(Schedulers.io())
            .observeOn(Schedulers.computation())
            .subscribe(response -> {
                getDataManager().getDbHelper().deleteUploadPostById(postUpload.postLocalId);
                callback.onResponse(Result.success());
            }}, throwable -> { 
        callback.onFailure(getResult());
    }));
...