如何访问工作管理器中的会议室数据库以定期同步?

时间:2019-04-03 11:35:11

标签: android mvvm android-room android-architecture-components android-workmanager

我想定期同步Room数据库。我正在使用工作经理来做。因此,我创建了一个定期工作请求,我想发送一个带有setInputData(TABLE HERE ..)的表。但是我想知道,我做对了吗?如果正确的话,如何定期将表格发送给工作经理?如果有误,请为我提供合适的解决方案。任何帮助将不胜感激。

这是我的代码:-

public class AttendanceWorker extends Worker {

private Executor executor;
private static final String TAG = "AttendanceWorker";

public AttendanceWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
    executor = Executors.newSingleThreadExecutor();
}


@SuppressLint("CheckResult")
@NonNull
@Override
public Result doWork() {
    Context context = getApplicationContext();
    AttendanceDao attendanceDao = DatabaseInstance.getInstance(context).attendanceDao();
    Attendance attendance = attendanceDao.getAttendanceDetailsForSync();
    NetworkUtils.getAPIService().saveAttendanceDetails(attendance).compose(RxUtils.applySchedulers())
            .subscribe(
                    (AttendanceResponse attendanceResponse) -> executor.execute(() ->
                    {
                        if (attendanceResponse != null) {
                            if (attendanceResponse.getResult().equals("1")) {
                                Log.d(TAG, "Attendance Synced!");
                            }
                        }
                    }),
                    Throwable::printStackTrace
            );
    return Result.success();
}

这是我的工作人员代码:

let

}

1 个答案:

答案 0 :(得分:0)

如果要在工作线程中建立查询,则可能要发送带有表名的字符串。你的工人长什么样?