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

Pel*_*ngi 5 android sync android-asynctask

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

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

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

如果互联网连接不可用,则应用程序将继续运行.

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

我的问题是:

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

谢谢,

mat*_*ash 5

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

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

如果你想在不使用SyncAdapter任何方式的情况下实现它,那么对于"检测连接何时可用",你需要添加一个BroadcastListener来监听CONNECTIVITY_ACTION广播,然后使用a ConnectivityManager来查询当前状态.