同步SQLite数据库和Dropbox数据存储

5
我为Android开发记事本应用程序。该应用程序将其数据存储在SQLite数据库中。我希望使用Dropbox datastore API实现可选备份/同步应用程序数据。如果用户已连接其Dropbox帐户,则应将应用程序数据存储在Dropbox云中,并在所有用户设备之间进行同步。
我的解决方案是最初将所有应用程序数据存储在数据库中。当用户连接了他的Dropbox帐户后,应用程序将移动所有数据到datastore。之后,应用程序将与datastore一起工作(因为它支持离线缓存并在后台执行同步)。如果用户决定从应用程序中取消链接其Dropbox帐户,则所有数据将移回设备上的本地SQLite数据库。我想创建应用程序数据存储的接口,并拥有两个实现:SQLite数据库和Dropbox datastore。因此,其他应用程序组件不会依赖于存储实现。当然,所有这些对用户来说都是完全透明的。
这是一个好方法吗?您能否提出更好的建议?
提前感谢!

我正在考虑做同样的事情。我希望所有的数据都留在SQLite中,但是我会通过Sync API或Datastore API将每个数据库记录同步到Dropbox。你有实现这个吗?结果如何? - Clifton Labrum
2个回答

4

非常有趣的功能,而且来得正是时候。谢谢! - Ilia Kopylov

2
最终我已经实现了这个功能。源代码可以在这里找到。关键类是Dropbox存储的实现。应用程序使用存储接口,并且两种实现(数据库和Dropbox数据存储)都能正常工作。两种实现都会缓存频繁查询的结果。唯一让我担心的是性能问题。我还没有测试和比较这些实现的数据查询和存储内容修改调用的性能。但是我想说应用程序运行流畅,我没有注意到任何延迟。

嗨@SagarPanwala,我已经更新了链接以防万一,但是Dropbox的API已于一年前被弃用并关闭。 - Ilia Kopylov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接