目标:启用WI-FI后,应用程序应可在本地和实时数据库中运行或自动同步
我有3个文本字段:姓名,父亲姓名,母亲姓名
我该如何使用android实现这一目标?
答案 0 :(得分:0)
如果您想使用简单的方法,可以使用firebase realtime database。这样可以确保数据在联机和脱机状态下均得以持久和管理。
还有其他选择。您始终可以自己将数据库保存在本地,然后在脱机和联机时手动与服务器同步。但是,比起使用诸如Firebase或其他服务之类的服务,这要麻烦得多。
答案 1 :(得分:0)
您可以使用WorkManager来实现自己的目标。
您的问题的解决方案:
扩展Worker
类并实现doWork()
。
public class SyncWorker extends Worker {
//...
public WorkerResult doWork() {
String name = getInputData().getString("name", null);
String fatherName = getInputData().getString("father_name", null);
String motherName = getInputData().getString("mother_name", null);
//Post data to your server.
return WorkerResult.SUCCESS;
}
}
像这样将这个工作程序添加到WorkManager
。
Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType
.CONNECTED).build();
Data inputData = new Data.Builder()
.putString("name", "XXX")
.putString("father_name", "XXX's Father")
.putString("mother_name", "XXX's Mother")
.build();
OneTimeWorkRequest uploadWork = new OneTimeWorkRequest.Builder(SyncWorker.class)
.setConstraints(constraints).setInputData(inputData).build();
WorkManager.getInstance().enqueue(uploadWork);
WorkManager会保留您的输入数据,并在互联网连接可用时调用SyncWorker::doWork
函数。