安卓备份API

8

有人能解释一下Android备份API的确切用途吗?

我已经阅读了开发者文档中的使用备份API数据备份,但对我来说仍然不清楚。

在哪些情况下会备份和恢复数据?

具体而言,是在以下情况下:

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

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

在一个文档中,它说

备份服务不适用于将应用程序数据与其他客户端同步或保存您希望在正常应用程序生命周期内访问的数据。您无法按需读取或写入备份数据,并且除了通过备份管理器提供的API之外,无法以任何方式访问它。
但在另一方面,Android框架可以帮助您构建丰富的云端应用程序,将其数据同步到远程Web服务,确保所有设备始终保持同步。这对我来说似乎是矛盾的。
更具体地说,我想持续同步单个数据库文件(小于20 KB)跨设备。使用备份API是否可能?

嘿,马特,实现方面有进一步的更新吗?你找到其他方法了吗?我也在尝试实现这样的功能,但卡住了。https://plus.google.com/113101937919336078298/posts/jgwaj52GWcc - Tony Thompson
2个回答

3

编辑: 回答你的问题,不,这不是一种可靠的同步数据的方法。

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

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

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

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

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

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

恢复备份不是手动的:

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


嘿,丹尼尔,能否请你检查一下我的代码有什么问题?https://dev59.com/GG3Xa4cB1Zd3GeqPbSS2 - Rahul

3
叹气,文档中不应该出现“同步”一词。我应该提交一些修补程序来解决这个问题。:) 这种机制并不旨在为两个设备之间提供数据交换。
Android备份基础设施的主要目标是在用户设置新设备时(例如,当他们购买平板电脑配合手机使用或设备被摔坏并设置替代品时)给予他们良好的体验。其想法是,新设置的设备处于熟悉的状态,所有相同的应用程序及其数据完整,适用时相同的壁纸图像等。
保持实时设备间数据同步是Sync Manager工具的作用。

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