我在当前的应用中使用了Android备份服务。 我已经阅读了docs
备份请求不会立即调用onBackup()方法。相反,备份管理器会等待适当的时间,然后对自上次执行备份以来请求备份的所有应用程序执行备份。
有谁知道从dataChanged()
请求到实际备份操作需要多长时间?
或者完全放弃Android备份服务并选择其他存储可能是个不错的选择?
祝你好运!
答案 0 :(得分:0)
从调用dataChanged()到实际推送到备份存储后端的数据的确切时间将根据几个因素而变化:主要是连接性。设备运行的Android版本也很重要;延迟政策多年来一直在调整。造成延迟的原因是为了避免“不必要地”推送大量数据,使用人们的月度数据配额,同时仍然试图保持后端至少大部分是最新的,这样你就不会失去吨数如果您不小心将手机放入河中或其他地方,则会发生变化。通常,延迟时间长达一个小时,但从Android M开始,延迟时间更长(更像是4小时)。出于测试目的,您始终可以使用此adb命令强制立即备份:
adb shell bmgr run
您还可以首先使用对 bmgr shell工具的不同调用来模拟您的应用调用dataChanged():
adb shell bmgr backup com.myapps.packagename
(当然,只使用你应用程序包的名称)。
您没有说明您的应用使用的是哪种数据路径 - 完整数据(Android M中的新功能)或键/值(Android Froyo中引入)。 dataChanged()仅与旧的键/值API相关。
正如上面的Viktor Yakunin指出的,备份不同步:备份系统的目标是在安装应用程序时无缝地提供应用程序的数据,无论是在用户正在设置的新设备上,还是在卸载后在同一设备上重新安装该应用程序。如果您想要的是数据交换机制,或者在多个设备上同时维护相同的数据,您应该查看同步管理器或其他类似的第三方设施。