Я использую 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());
}));