【问题标题】:android sync sqlite database with mssql remote server [duplicate]android将sqlite数据库与mssql远程服务器同步[重复]
【发布时间】:2015-01-08 22:30:38
【问题描述】:

我有一个 android 系统,它有一个本地 sqlite 数据库,它有 4 个相互关联的表(States -> Sections -> Offices -> OfficeTelephones)。我还有一个远程服务器,它从面板(网站)对其进行粗略操作,android 应用程序带有一个基本数据库,该数据库首先包含一些信息,但随后用户应该能够同步和更新它的 android local sqlite db mssql 以获取更新的、新的和已删除的数据。我知道应该有一个网络服务来处理请求,但我不知道如何处理同步。最好的方法是什么?

提前致谢

【问题讨论】:

    标签: c# android sql-server database sqlite


    【解决方案1】:

    您想将您的 android 数据库与远程服务器数据库同步,根据我的说法,您可以为此使用 web 服务或同步适配器。 您可以做的是每次用户启动应用程序时使用其余 api 检查更新并根据是否有任何更新来更新您的数据库,但是这种方法的问题是运行 api 的时间,如果您每次都运行它如果用户在使用应用程序时发生更改,则应用程序将启动,那么它不会被反映,如果您在固定持续时间后不断轮询更新,它将使用资源和电池电量。 所以最好的做法是使用同步适配器搜索它。实现起来有点棘手,但它将是最终的解决方案。希望我能帮助 正如您在 cmets 中提到的那样,用户正在按下按钮来更新数据库,那么您应该在上次更新时在设备上使用时间戳,并在服务器上的数据库通过比较两个更新时在服务器上使用时间戳,您会知道您需要是否更新你的android数据库,你可以维护一个布尔标志来检查你是否需要更新一行

    【讨论】:

    • 同步在用户手中,有一个同步按钮,用户可以根据需要更新应用程序,应用程序本身必须检查数据是否有变化并通知用户。我的问题是服务器端和检查两个数据库之间差异的概念。
    • 那么我认为 web 服务会是一个更好的主意,您可以使用时间戳来比较 android 和服务器上的数据库
    • 啊哈,这就是我要找的,你能解释一下吗?我会读到它,但很高兴在这里有一些解释。再次感谢
    • 您可以做的是将上次同步时的时间戳保存在本地设备上,并在其数据库更改时将时间戳保存到服务器,这样您就可以比较两者并知道这样做您是否需要从服务器同步数据,我在这里假设您在应用程序中的数据库事务是通过其余 api 执行的
    • 是的,它是 api,所以基本上我会有一个本地数据库的时间戳,这是你提到的最后同步时间,然后我每个都有一个时间戳列最后更新时间的表,通过比较它们,我可以过滤新的、更新的或删除的数据。这是正确的还是我错过了什么?
    猜你喜欢
    • 2017-12-10
    • 2014-09-18
    • 2016-09-05
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多