在ListenableWorker中执行RxJava

时间:2019-05-24 06:39:13

标签: android multithreading rx-java rx-java2 android-workmanager

我正在使用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());
    }));

0 个答案:

没有答案