我正在开发一个Android应用程序,该应用程序用于为问题列表提供反馈。回答完所有问题后,我单击“提交”按钮以将数据发送到服务器。为了避免由于连接而导致数据丢失,我已经实现了广播接收器。在下方,应用程序会在连接可用时开始发送代码,否则会将其存储在本地数据库中。但是,如果提交时连接断开
这是我的onClick()
提交按钮方法
if (isConnectionAvailable(this)) {
for (int i = 0; i < answereFinalList.size(); i++){
count = i;
Answere answere = answereFinalList . get (i);
saveData(answere, answereFinalList);
if (i == answereFinalList.size() - 1) {
progressDialog.dismiss();
}
}
} else {
DbManager.getInstance(this).addAnsweres(answereFinalList);
mainRL.setVisibility(View.GONE);
submitRL.setVisibility(View.VISIBLE);
submitRipple.setVisibility(View.GONE);
progressDialog.dismiss();
}
答案 0 :(得分:0)
我假设当您说要发送回数据时,是通过API发送数据吗?如果是这样,您将从服务器返回成功或失败响应,通知您是否已接收到数据。我的建议是在您的数据上有一个同步标志。
在有意义的情况下在您的应用程序中启动服务,可能在登录时,单击提交按钮时以及在互联网连接更改时,这取决于您要发送数据的频率。让该服务在数据库中查询设置了错误设置以进行同步的数据,如果您收到200更新,表示该数据可以同步,则调用API,或者从本地删除该服务。如果您发现任何错误,例如IE服务器已关闭,连接断开等...请不要更新该标志,并让服务在x时间后重试。或者当互联网连接恢复时,等等...