我想定期同步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
}
答案 0 :(得分:0)
如果要在工作线程中建立查询,则可能要发送带有表名的字符串。你的工人长什么样?