我正在开发一个Android应用程序,它在Sqlite数据库中本地存储数据并将其同步到远程服务器(MSSQL服务器)。通过REST api处理数据发送。
这是我希望它的工作方式和我处理它的计划:
当应用程序将数据存储在Sqlite数据库中时,应用程序将检查互联网连接是否可用,如果是,则应用程序将使HttpPost发送数据(我使用AsyncTask来处理此问题)。发送数据后,我将使用postExecute回调将数据库中的行标记为“synched”。
如果互联网连接不可用,则该应用将继续。
我需要让应用程序在互联网连接可用时收听事件,然后应用程序将浏览所有尚未同步的行,并再次使用AsyncTask将数据发送到远程服务器。
我的问题是:
谢谢,
答案 0 :(得分:5)
您可以手动实现此功能,但我建议您改为使用SyncAdapter。
虽然您可以设计自己的系统来进行数据传输 你的应用程序,你应该考虑使用Android的同步适配器框架。 该框架有助于管理和自动化数据传输,以及 协调跨不同应用的同步操作。当你 使用此框架,您可以利用其中的几个功能 不适用于您自己设计的数据传输方案。
如果你想在不使用SyncAdapter
的情况下实现这一点,那么对于“检测连接何时可用”,你需要添加BroadcastListener
来监听CONNECTIVITY_ACTION
广播,然后使用ConnectivityManager
查询当前状态。