Android备份服务延迟



我正在当前应用程序中使用Android备份服务。我在文件上读到

备份请求不会立即调用onBackup()方法。相反,备份管理器会等待适当的时间,然后对自上次执行备份以来请求备份的所有应用程序执行备份。

有人知道从dataChanged()请求到实际备份操作大约需要多长时间吗?

或者,完全放弃Android备份服务,选择其他存储设备可能是一个不错的选择?

致以最良好的问候!

从调用dataChanged()到将数据实际推送到备份存储后端的确切时间将因以下几个因素而异:主要是连接。设备运行的Android版本也很重要;多年来,延期政策一直在调整。延迟的原因是为了避免"不必要地"推送大量数据,耗尽人们每月的数据配额,同时仍然努力保持后端至少大部分是最新的,这样,如果你不小心把手机掉到河里或其他什么地方,你就不会损失大量的更改。通常情况下,延迟长达一个小时,但对于安卓M来说,延迟相当长(更像是4个小时)。出于测试目的,您可以使用以下adb命令强制立即备份通过:

adb shell bmgr run

您还可以首先通过对bmgrshell工具的不同调用来模拟应用程序调用dataChanged():

adb shell bmgr backup com.myapps.packagename

(当然,只使用你的应用程序包的真正名称。)

你没有说明你的应用程序使用的是哪条数据路径——完整数据(在Android M中是新的)或密钥/值(在Android Froyo中引入)。dataChanged()仅与较旧的键/值API相关。

正如Viktor Yakunin在上文中指出的那样,备份不是同步的:备份系统的目标是在应用程序安装时无缝交付应用程序的数据,无论是在用户正在设置的新设备上,还是在同一设备上卸载和重新安装应用程序后。如果您想要的是数据交换机制,或者在多个设备上同时维护相同的数据,您应该查看同步管理器或其他类似的第三方设施。

最新更新