Android 将数据上载/同步到服务器的最佳方法?

Android 将数据上载/同步到服务器的最佳方法?,android,service,Android,Service,场景:我的应用程序有很多活动。最后,用户只需单击一下就可以上传所有数据 问题:如果用户在移动中停止服务(互联网服务/连接不良),则可能会出现问题,然后他/她无法上传数据 在这种情况下,我想知道什么可能是最有效的方法。 我想到了一种方法。如果由于连接不良/无服务,我将在SQLite中本地保存数据。当用户下次打开应用程序以检查服务/连接是否可用时,保持线程处于活动状态。如果是,将立即上载 我将急切地等待您的评论。使用同步标志将您的所有数据保存到SQLite。使用服务不断检查未同步的标志,并尝试在后台

场景:我的应用程序有很多活动。最后,用户只需单击一下就可以上传所有数据

问题:如果用户在移动中停止服务(互联网服务/连接不良),则可能会出现问题,然后他/她无法上传数据

在这种情况下,我想知道什么可能是最有效的方法。

我想到了一种方法。如果由于连接不良/无服务,我将在SQLite中本地保存数据。当用户下次打开应用程序以检查服务/连接是否可用时,保持线程处于活动状态。如果是,将立即上载


我将急切地等待您的评论。

使用同步标志将您的所有数据保存到SQLite。使用服务不断检查未同步的标志,并尝试在后台发送到服务器,在同步完成时更新标志


另一种方法是,如果您正在从SQLite同步到direct SQL Server,您可以设置事务或批量更新,因此如果连接失败,它将恢复事务。

要了解如何上传数据,我建议观看Google I/O 2012-使好的应用程序很棒:专家Android开发人员的更高级主题:16:43。它涉及效率和对电池寿命的影响

总结视频:

根据手机收音机的工作方式,进行一次大的上传,而不是几次小的上传,并尽量减少与网络的接触


在较低的级别上,如user370305所说,尝试上载数据,如果没有连接,则在用户下次打开应用程序或单击上载按钮时延迟上载

简单的朋友。。!最后,当您上传数据时,请检查连接是否良好,然后上传数据,否则只需存储在本地数据库中,下次用户访问应用程序时,请上传数据并清除数据库。。因此,不需要任何服务来持续检查连通性。这就是我要问的。。。所以我会这样做,将这些数据保存在SQLite中,当用户打开应用程序时,按下上传按钮,数据就会被上传。