我正在使用ListenableWorker
在媒体上进行一些编辑,然后在服务器上创建帖子。一切工作正常,但是有一种特殊情况,那就是当api call
发送到服务器并且用户在从服务器返回响应之前杀死应用程序时,尽管Post是在服务器上创建的,但是post不会从本地数据库中删除,因为响应未收到。这会导致Worker重新启动以重试上传。我如何实现即使关闭应用程序但如果进行api调用的目标,也应该为此收到响应。我本可以使用Worker而不是ListenableWorker
,但这不能满足我的需求。可以更改Scheduler线程吗,正确的选择是什么?以下是代码:
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());
}));