我已经查看了文档和示例 BackupRestore 应用程序,并编写了我自己的测试应用程序来实现android:backupAgent
. 我扩展了BackupAgent
课程,因为我主要关心的是能够从数据库备份数据。我似乎无法使用此功能制作一个简单的概念验证应用程序。
为了让事情变得异常简单,我在清单中声明了android:backupAgent
as MyBackupAgent
。然后我创建了一个类 MyBackupAgent.java,扩展BackupAgent
. onBackup()
然后我为类中的和onRestore()
方法创建了覆盖MyBackupAgent
,就像在示例和文档中一样。我在每个函数的开头添加了一个Log.i()
调用,以便我可以在 LogCat 中识别函数何时被调用。同样,我在这两个上都设置了断点。然后我继续实现我的代码来备份数据库。
我使用 2.2w/Google API 创建了一个模拟器图像,甚至在 Accounts & Sync 下添加了一个 gmail 帐户。运行 adb 命令以启用bmgr
、备份应用程序、运行备份、卸载应用程序、重新安装应用程序等......我从来没有在日志文件中收到来自or函数中的Log.i()
命令的消息。onBackup()
onRestore()
我在运行 2.2 的 Evo 4g 上再次尝试。结果相同。备份管理器似乎没有调用类中的onBackup()
和onRestore()
函数MyBackupAgent
。
我在日志中收到的唯一奇怪消息是来自BackupManagerService
声明“备份通过但 e=true p=false”的消息,我相信响应 ADB 命令来备份应用程序。
有什么建议么?我是否错误地认为and函数中的Log.i()
语句会出现在 LogCat 中?onBackup()
onRestore()