【发布时间】:2016-10-07 18:49:25
【问题描述】:
情况
我一直在努力解决这个问题。我有一个使用 Realm 和后端 SQL Server 数据库的本地数据库。我的应用程序中有几个区域可以非常快速地更改数据(例如复选框)。用户可以每秒多次来回切换数据。因此,假设用户在一秒钟内进行了 10 次更改。我要避免的是在那一秒内向 SQL Server 发布 10 次。相反,我希望有某种批处理过程,每 5~10 秒执行一次以同步数据,从而减少网络调用。
注意事项
即使用户在 5~10 秒标记之前或在执行 POST 调用时终止应用程序,我如何确保同步过程会触发。
在当前活动的 onPause() 中调用服务以在事后运行?这是 保证?
缓存数据并在下次应用启动时重试?
使用 GCM 或某种形式的推送服务来启动计划同步?
我知道这没有灵丹妙药,但如果有人遇到类似的问题,任何建议/最佳做法表示赞赏,在此先感谢!
【问题讨论】:
-
我认为没有人能告诉你正确的解决方案,因为所有这些都涉及权衡,这取决于设备上数据的重要性。我会查看后台服务或 JobScheduler。如果服务器发生变化,通常使用 GCM,而不是相反。
-
谢谢@ChristianMelchior 我会考虑到这一点。顺便说一句,喜欢你们在 Realm 那里所做的事情。继续努力:)
标签: android sql-server realm