【问题标题】:Android Backup APIAndroid 备份 API
【发布时间】:2013-01-13 01:13:30
【问题描述】:

谁能解释一下确切 Android Backup API 的用途?

我已阅读开发者文档中的Using the Backup APIData Backup,但我仍不清楚。

什么时候备份和恢复数据?

特别是在这些情况下:

  1. 用户在设备 1 上安装我的应用程序,备份数据,然后用户在设备 2 上安装我的应用程序。来自设备 1 的用户数据是否会自动放在设备 2 上?如果是这样,是在安装应用程序时还是在启动应用程序时发生的?

  2. 我的应用安装在 2 台设备上。当在设备 1 上进行更改时,是否会在设备 2 上自动进行?如果没有,是否至少可以在设备 2 上进行更改?

在一个文档中,它说

备份服务不是为同步应用程序数据而设计的 与其他客户或保存您想在访问期间访问的数据 正常的应用程序生命周期。您无法读取或写入备份数据 需求,并且不能通过 API 以外的任何方式访问它 由备份管理器提供。

但在另一个方面,

Android 框架可帮助您构建支持云的丰富应用, 将他们的数据同步到远程网络服务,确保您的所有设备 始终保持同步

这对我来说似乎很矛盾。

更具体地说,我想跨设备持续同步单个数据库文件(小于 20 KB)。 Backup API 可以做到这一点吗?

【问题讨论】:

标签: android cloud sync


【解决方案1】:

编辑:所以回答您的问题 - 不,这不是同步数据的可靠方式。

当用户购买新设备或重置其现有设备时,他们可能会期望,当 Google Play 在初始设置期间将您的应用恢复到他们的设备时,与该应用关联的先前数据也会恢复。默认情况下,这不会发生,并且用户在您的应用中的所有成就或设置都会丢失。

在我看来,您的应用正在将数据存储到云端。您将文件推送到备份服务器并使用 API 密钥(每个用户的谷歌帐户唯一)允许您将备份下载到其他设备,但只能在安装应用程序期间或通过手动请求进行访问。文档指出:

备份服务并非设计用于与其他客户端同步应用程序数据或保存您希望在应用程序生命周期内随机访问的数据。

据我了解(我自己没有实现),您不能将其用作云同步实时数据的可靠方法。

清单可能会启动数据处理并确定是否应推送备份。

未来的某个时刻,备份管理器会调用备份代理的 onBackup() 方法

恢复备份不是手动的:

通常情况下,您不必手动请求恢复,因为它会在您的应用程序安装在设备上时自动发生。但是,如果需要触发手动恢复,只需调用 requestRestore() 方法即可。

【讨论】:

【解决方案2】:

唉,文档不应该在任何地方都说“同步”。我应该提交一些补丁来解决这个问题。 :) 此机制并非旨在提供两个设备之间的数据交换。

Android 中备份基础架构的主要目标是为您的用户在设置新设备时提供良好的体验,例如当他们购买平板电脑以配合手机使用时,或者当设备掉落和损坏时他们设立了一个替代品。这个想法是新设置的设备处于熟悉的状态,所有相同的应用程序及其数据完好无损,适用时相同的壁纸图像等等。

在设备之间实时保持数据同步是同步管理器工具的用途。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多