使用 Google 驱动器逻辑备份和同步 SQLite 数据库?
Backup and sync SQLite database with Google Drive logic?
我希望 "backup" 部分在后台完成,并且仅在用户不使用时才启动。我正在使用 android-priority-jobqueue 并制作了一个可以实现此目的的 Job 对象。
这是我目前的问题:
但现在我正在考虑如何确保用户没有使用该应用程序,以便我可以 运行 完成工作。我也在考虑如何在用户像在多个其他应用程序中一样使用该应用程序时备份或同步数据库。
我不知道如何在不丢失任何数据的情况下将数据恢复回应用程序。例如,有两个设备。设备 1 已将其数据库备份到 Google 驱动器中。现在,设备 2,因为它有几个小时没有连接,所以它在数据库中创建了新条目。然后它连接到互联网并且它必须从 Google 驱动器中获取其他条目而不覆盖它当前拥有的条目。
我真的很困惑什么时候同步,什么时候备份,以及如何完美地实现它们。
谁能帮帮我
对于 #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)
我希望 "backup" 部分在后台完成,并且仅在用户不使用时才启动。我正在使用 android-priority-jobqueue 并制作了一个可以实现此目的的 Job 对象。
这是我目前的问题:
但现在我正在考虑如何确保用户没有使用该应用程序,以便我可以 运行 完成工作。我也在考虑如何在用户像在多个其他应用程序中一样使用该应用程序时备份或同步数据库。
我不知道如何在不丢失任何数据的情况下将数据恢复回应用程序。例如,有两个设备。设备 1 已将其数据库备份到 Google 驱动器中。现在,设备 2,因为它有几个小时没有连接,所以它在数据库中创建了新条目。然后它连接到互联网并且它必须从 Google 驱动器中获取其他条目而不覆盖它当前拥有的条目。
我真的很困惑什么时候同步,什么时候备份,以及如何完美地实现它们。
谁能帮帮我
对于 #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)