小编Rez*_*Rad的帖子

如何在工作管理器中使用改造将一些本地消息一一发布到服务器?

在我的聊天应用程序中,我想从本地数据库读取消息并由工作经理将它们发送到服务器,并在用户发送新消息时进行改造。

在父母中:

 OneTimeWorkRequest workRequest = new OneTimeWorkRequest
        .Builder(SendMsg_Work.class)
        .setConstraints(new Constraints
                .Builder()
                .setRequiredNetworkType(NetworkType.CONNECTED)
                .build())
        .setInitialDelay(5, TimeUnit.SECONDS)
        .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 30, TimeUnit.SECONDS)
        .build();
    WorkManager.getInstance().enqueue(workRequest);
Run Code Online (Sandbox Code Playgroud)

在工人:

@NonNull
@Override
public Result doWork() {
        ChatRoom_Model_Local ll = database.get_unSendMsg();
        if (ll != null) {
            sendMessage(ll);
        } else {
            return Result.failure();
        }
}
Run Code Online (Sandbox Code Playgroud)

和改造 - 我也使用 RxJava :

private void sendMessage(ChatRoom_Model_Local model) {

    Single<Response<MSG_Response>> api = ApiClient.createService(ApiInterface.class, pr.getData(pr.SendMessage_url))
            .sendMSG(pr.getData(pr.MY_TOKEN), model.getOther_user(), model.getMsg_text());

    api.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new SingleObserver<Response<MSG_Response>>() {
                @Override
                public void onSubscribe(Disposable d) { }

                @Override
                public void onSuccess(Response<MSG_Response> response) { …
Run Code Online (Sandbox Code Playgroud)

android rx-java retrofit android-workmanager

5
推荐指数
0
解决办法
3125
查看次数

标签 统计

android ×1

android-workmanager ×1

retrofit ×1

rx-java ×1