- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想要备份和恢复我的 Android 应用程序中的一些数据。为此,我创建了 BackupAgent
的自定义实现。
在我的 list 中包含了备份代理,如下所示
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="com.myapp"
android:versionCode="14"
android:versionName="1.13" >
<application
android:backupAgent="com.myapp.MyBackupAgent">
<meta-data
android:name="com.google.android.backup.api_key"
android:value="my key" />
我已经包含了备份服务 api key ,虽然我正在使用模拟器 (Android 2.2) 进行测试,但这不是必需的,因为它使用本地备份传输。
为了测试备份和恢复,我做了以下工作:
启用备份
adb shell bmgr enable true
调用我的部分代码是调用 BackupManager 类中的 dataChanged 方法。
手动启动备份操作
adb shell bmgr 运行
在日志中查看我的自定义 BackupAgent 的 onBackup 方法被调用。
问题是 onRestore 方法似乎没有被调用,我不知道为什么。重新安装应用程序或使用 adb 手动触发还原后,我在控制台中看到以下内容。
$adb shell bmgr restore com.myapp
restoreStarting: 2 packages
restoreFinished: 0
done
还有这个在日志中
D/AndroidRuntime( 8259):
D/AndroidRuntime( 8259): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 8259): CheckJNI is ON
D/AndroidRuntime( 8259): --- registering native functions ---
D/BackupManagerService( 59): MSG_RUN_RESTORE observer=android.app.backup.IRestoreObserver$Stub$Proxy@450e16a8
V/LocalTransport( 59): start restore 1
V/LocalTransport( 59): nextRestorePackage() = @pm@
V/LocalTransport( 59): getRestoreData() found 7 key files
V/LocalTransport( 59): ... key=com.android.providers.settings size=1208
V/LocalTransport( 59): ... key=com.myapp size=501
V/LocalTransport( 59): ... key=android size=1208
V/LocalTransport( 59): ... key=com.android.providers.userdictionary size=1208
V/LocalTransport( 59): ... key=com.android.browser size=1208
V/LocalTransport( 59): ... key=com.android.inputmethod.latin size=1208
V/LocalTransport( 59): ... key=@meta@ size=11
V/LocalTransport( 59): no more packages to restore
V/LocalTransport( 59): finishRestore()
V/LocalTransport( 59): finishRestore()
D/AndroidRuntime( 8259): Shutting down VM
但我没有看到实际调用了 onRestore(我在它的开头有一些日志记录语句?
这种情况发生在你身上吗?有没有什么原因导致onRestore方法没有被调用,甚至在onBackup
被调用了?
最佳答案
根据我的经验,出于某种奇怪的原因(我尚未确定),BackupAgents 中的日志记录语句不会显示在日志中。尽管如此,我已经能够确认 onRestore 方法是实际上正确运行。
在您的问题中,您指出 onRestore 方法“似乎没有被调用”,因为您无法看到正确的日志。您能否确认结果失败(即应该正确恢复的数据没有)?
关于android - 没有为我的自定义 BackupAgent 调用 onRestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928669/
list : 代码: public class PrefsBackupAgent extends BackupAgentHelper { @Override public
我正在查看 AndroidManifest 文件,我看到了 android:backupAgent 的条目,根据文档 android:backupAgent 是 The name of the cla
我正在尝试实现自定义 backupAgentHelper 来备份我的应用程序的数据库文件。我已经多次浏览文档,但每当我尝试强制备份时,Create/onBackup/onRestore 上的 back
我正在考虑使用自 Android 2.2 以来可用的新备份 API,但需要保持向后兼容性(准确地说是 1.5)。 文档状态: The backup service and the APIs you m
我正在尝试让 BackupAgent 工作,但我无法让它工作。这是我的示例代码: 布局只是一个 TextView 和一个 Button。 主要 Activity : ... public st
我有一个使用备份功能的应用程序。这是我的 list 中的一行: android:backupAgent="my.package.backup.BackupAgent" 它在当前版本中运行良好。但现在我
我想要备份和恢复我的 Android 应用程序中的一些数据。为此,我创建了 BackupAgent 的自定义实现。 在我的 list 中包含了备份代理,如下所示 我已经包
我已经根据文档实现了 BackupAgentHelper,包括向后兼容 1.6,以备份我所有的 SharedPreferences。在模拟器 Android 2.2 中测试它时以及在我的设备上运行时,
我在这里看到了几个示例,但没有一个是专门针对备份 SQLite 数据库的,有人有这样做的示例吗? http://www.microdu.com/docs/guide/topics/data/backu
我正在测试我的自定义 BackupAgent。下面是我在Simulator & Eclipse ADT中的测试 使用命令 ---- WORK WELL 测试 1 备份和恢复 启用 adb shell
我查看了文档和示例 BackupRestore 应用程序,并编写了我自己的测试应用程序来实现 android:backupAgent。我扩展了 BackupAgent 类,因为我主要关心的是能够从数据
我是一名优秀的程序员,十分优秀!