我希望“备份”部分在后台完成,并且只有在用户不使用时才会启动。我正在使用android优先级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)
冲突解决的示例代码:
https://github.com/googledrive/android-conflict