“在文档中:
http://developer.android.com/guide/topics/data/backup.html#Testing
它建议通过以下方式测试应用程序的备份/恢复:
>安装你的应用程序
>确保启用备份/恢复
>更改一些数据并调用dataChanged()
>强制bmgr运行备份传递
>卸载应用程序
>重新安装应用程序并检查您的数据是否已恢复
一切似乎都很好,直到第4步,当我在日志中看到这个:
V / BackupManagerService(306):removePackageParticipantsLocked:uid = 10078#1
V / BackupManagerService(306):删除com.example.app的备份知识
然后是第5步:
V / BackupManagerService(306):restoreAtInstall pkg = com.example.app token = 21
V / BackupManagerService(306):没有恢复集 – 跳过恢复
因此,当卸载应用程序时,显然备份的数据会被破坏,这意味着官方测试工作流程可能无法正常工作?测试这个的最佳方法是什么?“
有没有人设法运行并正确测试此样本?
解决方法
它是如何工作的:
>在设备A中安装应用程序.
>在设备A中设置任何数据或首选项.
>在设备A上强制备份.(使用adb shell bmgr backup [app_name],adb shell bmgr run).
>抓住第二台设备B.
>在设备B上执行恢复出厂设置.
>重置后,再次安装该应用程序.
>恢复操作应该成功.
令我恼火的是,谷歌Android文档中显示的“步骤”似乎非常详细,决定省略它看似必要的必要步骤.
正如克里斯在答复中提到的那样,我希望这有助于其他找到同样问题的人.
谢谢.
编辑:
在使用不同设备进行进一步测试后,似乎整个备份/恢复过程可能因制造商和设备而异.我可以使用Google的文档方法测试示例应用程序,即使用nexus 7卸载和安装 – 只是巧合.因此,我的建议是在测试期间不要期望相同的行为和一致性.