android - 使用 Google Drive 逻辑备份和同步 SQLite 数据库?

标签 android sqlite google-drive-android-api

我希望“备份”部分在后台完成,并且仅在用户不使用时才启动。我正在使用 android-priority-jobqueue 并制作了一个可以实现此目的的 Job 对象。

这是我目前的问题:

  1. 但现在我正在考虑如何确保用户没有使用该应用程序,以便我可以运行该作业。我也在考虑如何在用户像在多个其他应用程序中一样使用该应用程序时备份或同步数据库。

  2. 我不知道如何在不丢失任何数据的情况下将数据恢复到应用程序。例如,有两个设备。设备 1 将其数据库备份到 Google Drive。现在,设备 2,因为它有几个小时没有连接,所以它在数据库中创建了新条目。然后它连接到互联网并且它必须从 Google Drive 获取其他条目而不覆盖它当前拥有的条目。

我真的很困惑什么时候同步,什么时候备份,以及如何完美地实现它们。

谁能帮帮我

最佳答案

对于 #2,如果您使用 GDAA 上传文件,您可以传递一个允许您处理冲突的 ExecutionOptions。这使您可以实现任意逻辑来解决上传冲突,例如也许在您的情况下是合并来自两个设备的内容。但是,请注意,目前冲突检测仅适用于更新现有文件,不适用于创建新文件。

更多引用: https://developers.google.com/drive/android/completion#conflict https://developers.google.com/android/reference/com/google/android/gms/drive/ExecutionOptions.Builder.html#setConflictStrategy(int)

解决冲突的示例代码: https://github.com/googledrive/android-conflict

关于android - 使用 Google Drive 逻辑备份和同步 SQLite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33275024/

相关文章:

android - 如果 APK 已签名,Google Drive REST API AppDataFolder 将无法正常工作

android - 如何从 SQLite 中检索特定列并将其显示在 Android 中的 ListView 表单中?

javascript - 验证用 Phonegap(或等效)包装的 HTML5 应用程序

android - 带有 Phonegap Build 和 PushPlugin 的 Android 的白色通知图标

windows - Luasql 和 SQLite?

c# - 如何解决此错误 "file is encrypted or is not a database file is encrypted or is not a database"Source=System.Data.SQLite

android - Google Drive REST/Android API - 查找云端硬盘文件夹的更改集

android - 访问另一个应用程序的数据库

java - 在存储在 sqlite 数据库 android 中的 float 之前 5 分钟通知

java - 使用 android.gms.drive 从 android 中删除/垃圾文件