什么是Android应用自动备份?

4

关于Android自动备份,很少有人会提出问题。我之前没有使用过,所以先阅读了文档!https://developer.android.com/guide/topics/data/autobackup.html#Files

然后我创建了一个示例应用程序,并成功将其添加到已在Google Drive上备份的应用程序列表中。

但是,我仍然想从这里澄清一些事情,因为这使内容更加易于理解而不是文档。

以下是我搞砸的几个重点。

恢复计划

设备可以从它自己的备份或祖先数据集中恢复。如果两种来源都可用,则设备优先考虑自己的备份。如果用户没有经历设备设置向导,则设备只能从自己的备份中恢复。

  • 备份大小最多可以达到25MB。假设我卸载并重新安装一个应用程序。备份在哪个阶段进行?我需要遵循任何技巧吗,例如等待直到完成 onRestoreFinished()?如果有20 MB数据呢?有没有好的示例?

启用和禁用备份

<application ...
    android:allowBackup="true">
</app>

要禁用自动备份,请将 android:allowBackup 设置为 false 。当您的应用程序可以通过某些其他机制重新创建其状态或者当您的应用程序处理不应备份的敏感信息时,您可能希望禁用备份。

  • 此行在清单中,那么一旦备份任务完成,将其设置为false的最佳方法是什么?比如说注册完成了,我只想备份这个。如何在运行时更新该标签值?

  • 是否有任何方法通过删除现有备份来重置25MB备份配额?

谢谢

1个回答

9
“备份在哪个阶段进行?我需要遵循什么技术,例如:像一个闪屏一样等待 onRestoreFinished() 完成吗?如果有大约20MB的数据,有没有好的示例可供参考?”
“对于我们开发者来说,这是自动完成的,在应用程序安装期间会自动进行,这可以在以下几种情况下发生:”
“当应用从Play商店安装、设备设置(系统安装先前安装的应用程序)或运行adb install时,都会还原数据。还原操作发生在APK安装之后,但在应用程序对用户可用之前。”
“来源于还原计划
这是不可能的。正如您在备份计划中所读到的那样,它会在某种规律的间隔自动完成。如果您有与此计划冲突的要求,则必须实现自己的备份机制。该标记值无法在运行时更新。
有没有一种方法通过删除现有的备份来重置25MB备份配额?
这不是必要的。一次只存在一个备份。当创建新备份时,旧备份会被删除:
备份数据存储在用户的Google Drive帐户中的私有文件夹中,每个应用程序限制为25MB。保存的数据不计入用户的个人Google Drive配额。只存储最近的备份。 创建备份时,将删除以前的备份(如果存在)。
来自备份位置

谢谢你的小澄清,你能给一个 自己的备份机制 的小例子吗?如果你知道的话,我希望能在获取数据后停止进行新的备份。我认为这是因为文档提到了 即使应用程序没有运行,这些回调方法也会被执行。- 实现BackupAgent..教了如何停止它们或者让它们继续运行是正常的吗? - Charuක
1
@Charuka BackupAgent仅通知您事件,不允许您手动启动或停止备份。自定义备份机制的示例可以是Firebase存储,其中您将所有数据同步到Firebase的数据库中(这很容易使用Firebase完成)。 - Tim

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