Android 2.2中的BackupManager和BackupAgent

Android 2.2中的BackupManager和BackupAgent,第1张

概述我已经查看了文档和示例BackupRestore应用,并编写了实现android:backupAgent的我自己的测试应用.我扩展了BackupAgent类,因为我主要关心的是能够从数据库中备份数据.我似乎甚至无法使用此功能来制作简单的概念验证应用程序.为了使事情变得异常简单,我在清单中将android:backupAgent

我已经查看了文档和示例BackupRestore应用,并编写了实现android:backupAgent的我自己的测试应用.我扩展了BackupAgent类,因为我主要关心的是能够从数据库中备份数据.我似乎甚至无法使用此功能来制作简单的概念验证应用程序.

为了使事情变得异常简单,我在清单中将androID:backupAgent声明为MyBackupAgent.然后,我创建了一个类MyBackupAgent.java,扩展了BackupAgent.然后,像示例和文档中一样,在MyBackupAgent类中为onBackup()和onRestore()方法创建了重写.我在每个函数的开头添加了Log.i()调用,以便可以在调用函数时在LogCat中进行标识.同样,我在这两个位置都设置了断点.然后,我继续实现我的代码以备份数据库.

我使用2.2w / Google Api创建了一个模拟器图片,甚至在Accounts&下添加了一个gmail帐户.同步.通过adb命令运行以启用bmgr,备份应用程序,运行备份,卸载应用程序,重新安装应用程序等…我从来没有从Log.i()命令中的任何一个日志文件中收到消息onBackup()或onRestore()函数.

我在运行2.2的Evo 4g上再次尝试.结果相同.似乎备份管理器没有在MyBackupAgent类中调用onBackup()和onRestore()函数.

我在日志中收到的唯一奇怪的消息是backupmanagerService发出的一条消息,内容为“ Backup pass but e = true p = false”,我相信响应ADB命令来备份应用程序.

有什么建议么?我以为onBackup()和onRestore()函数中的Log.i()语句会出现在LogCat中是我的错误吗?

解决方法:

outputBackup传递但e = true p = false表示备份管理器已启用(e = true)但未设置(p = false).

如果同时满足这两个条件,它将仅运行备份.因此,出于某种原因,没有在您的仿真器映像上配置backupmanager,在挖掘代码之后,我发现它应该在启动期间自动配置(DefaultActivity)

I/ActivityManager(   73): Starting: Intent { act=androID.intent.action.MAIN cat=[androID.intent.category.HOME] flg=0x10000000 cmp=com.androID.sdksetup/.DefaultActivity } from pID 0

我刚刚创建了一个新的仿真器映像,并且在那里工作没有问题.

总结

以上是内存溢出为你收集整理的Android 2.2中的BackupManager和BackupAgent全部内容,希望文章能够帮你解决Android 2.2中的BackupManager和BackupAgent所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1093002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存