Android应用程序以异步方式将数据同步到远程服务器

时间:2014-06-02 22:41:24

标签: android android-asynctask sync

我正在开发一个Android应用程序,它在Sqlite数据库中本地存储数据并将其同步到远程服务器(MSSQL服务器)。通过REST api处理数据发送。

这是我希望它的工作方式和我处理它的计划:

当应用程序将数据存储在Sqlite数据库中时,应用程序将检查互联网连接是否可用,如果是,则应用程序将使HttpPost发送数据(我使用AsyncTask来处理此问题)。发送数据后,我将使用postExecute回调将数据库中的行标记为“synched”。

如果互联网连接不可用,则该应用将继续。

我需要让应用程序在互联网连接可用时收听事件,然后应用程序将浏览所有尚未同步的行,并再次使用AsyncTask将数据发送到远程服务器。

我的问题是:

  1. 可以实现吗?如果是的话,这是最好的做法吗?
  2. 当互联网连接可用时,如何收听?
  3. 谢谢,

1 个答案:

答案 0 :(得分:5)

您可以手动实现此功能,但我建议您改为使用SyncAdapter

  

虽然您可以设计自己的系统来进行数据传输   你的应用程序,你应该考虑使用Android的同步适配器框架。   该框架有助于管理和自动化数据传输,以及   协调跨不同应用的同步操作。当你   使用此框架,您可以利用其中的几个功能   不适用于您自己设计的数据传输方案。

如果你想在不使用SyncAdapter的情况下实现这一点,那么对于“检测连接何时可用”,你需要添加BroadcastListener来监听CONNECTIVITY_ACTION广播,然后使用ConnectivityManager查询当前状态。