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 上传照片时,防止将照片自动保存到图库