我已经研究并遵循如何让我的Android应用程序备份数据到谷歌备份,所以如果用户失去电话或升级到新手机,他们不会失去他们的数据。但是,当我测试(通过自己使用该应用程序,然后卸载并重新安装)时,不会恢复任何数据。这是我所做的。也许有人可以弄清楚什么是错的。Android备份的共享首选项到谷歌备份服务不起作用
- 应用从谷歌
以下清单文件的代码(在地方关键我没有添加键值的和的packageName我用我的应用程序包名称)的备用钥匙放在
android:backupAgent="packageName.MyPrefsBackup"> <meta-data android:name="com.google.android.backup.api_key" android:value="key" />
用以下代码创建类别
MyPrefsBackup
。我想要备份的sharedpreference文件的名称称为UserDB。至于PREFS_BACKIP_KEY
,我只是把它称为首选项。根据我的理解,这与清单文件中的密钥不同。
代码:
package packageName;
import android.app.backup.BackupAgentHelper;
import android.app.backup.SharedPreferencesBackupHelper;
public class MyPrefsBackup extends BackupAgentHelper {
// The name of the SharedPreferences file
static final String PREFS = "UserDB";
// A key to uniquely identify the set of backup data
static final String PREFS_BACKUP_KEY = "prefs";
// Allocate a helper and add it to the backup agent
public void onCreate() {
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
addHelper(PREFS_BACKUP_KEY, helper);
}
}
新增
BackupManager mBackupManager = new BackupManager(this);
在我的主类,我调用备份管理器中的下一个步骤最后,在我的主程序我叫
backupHelper
时数据由以下行改变:mBackupManager.dataChanged();
任何帮助,非常感谢。
感谢亚行外壳后叫,我就给如果这几天一试,并报告有用。我忘了添加上面,我有脚本BackupManager mBackupManager =新的BackupManager(这);在我的主应用程序的变量声明部分。 – gbotha
所以,这仍然不起作用。我通过从市场上安装应用程序进行测试,然后编辑调用dataChanged()命令的数据库。然后我等待大约2-3天,卸载应用程序并重新安装。重新安装后,我不会提示重新加载数据库。令人沮丧......任何人的进一步帮助? – gbotha
您只备份SharedPrefs。您没有备份数据库和文件。这是我猜的问题。 – tasomaniac