Android:如何在手机上网时自动上传数据/同步到服务器

Posted

技术标签:

【中文标题】Android:如何在手机上网时自动上传数据/同步到服务器【英文标题】:Android : How to upload data/sync to server automatically when mobile gets internet 【发布时间】:2015-07-15 07:44:54 【问题描述】:

我正在开发一个基于表单的应用程序,当我处于离线模式和在线模式时,我希望在其中存储表单。当用户离线时,只要有互联网连接,它就会自动将数据发送到服务器。

我已经实现并测试了我的 api,但是如何根据互联网连接同步数据让我头疼。有人可以提出适当的解决方案吗?

它与同步适配器有关吗? 如果我将使用 Cloud ant 即 DBaaS 作为数据库,它对我来说会是一个不错的选择吗?

请给我一些代码sn-ps

提前致谢

【问题讨论】:

【参考方案1】:

您可以使用 Cloudant。

首先在设备上使用sync-android 将数据存储在本地。

然后您需要能够检测设备的连接状态。使用 Android 的 ConnectivityManager 来检测设备何时连接到 wifi 或使用 getNetworkInfo 的蜂窝网络。

当您的设备连接到 wifi 时,start a replication to the Cloudant server。

【讨论】:

【参考方案2】:

您可以查看以下链接了解互联网连接状态。

Broadcast receiver for checking internet connection in android app

当你有一个接收互联网连接的广播接收器时,启动一个将数据上传到服务器的意图。为此,volley 是一个很好的库。

https://developer.android.com/training/volley/simple.html

【讨论】:

以上是关于Android:如何在手机上网时自动上传数据/同步到服务器的主要内容,如果未能解决你的问题,请参考以下文章

数据库同步

如何将 Android 手机上的 SQLite 数据库与服务器上的 MySQL 数据库同步?

在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止将照片自动保存到图库

我想实现安卓手机拍照后,照片自动同步到局域网没电脑。没有外网的情

苹果手机同步备份的文件在哪里

小程序文件上传适合苹果手机吗