【发布时间】:2012-11-15 21:34:50
【问题描述】:
我正在尝试让 BackupAgent 正常工作,但无法正常工作。这是我的示例代码:
布局只是一个TextView和一个Button。
主活动:
...
public static final String PREF_NAME = "TestPref";
private static final String TEST_KEY = "TEST";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences pref = getApplicationContext()
.getSharedPreferences(PREF_NAME, MODE_PRIVATE);
if (pref.getString(TEST_KEY, "").length() == 0) {
pref.edit().putString(TEST_KEY, "new Date())
.commit();
new BackupManager(getApplicationContext()).dataChanged();
}
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tv = (TextView) findViewById(R.id.textView1);
if ("START_VALUE".equalsIgnoreCase(tv.getText().toString())) {
tv.setText(pref.getString(TEST_KEY, ""));
}
}
});
}
BackupHelper 正是我在这里可用的:http://developer.android.com/reference/android/app/backup/SharedPreferencesBackupHelper.html 我用我使用的那个调整了pref文件的名称。
我在清单中添加了
android:backupAgent="TheBackupAgent"(应用标签)
和备份元数据
<meta-data android:name="com.google.android.backup.api_key"
android:value="{registered_key}" />
所以它真的是一个非常简单的应用程序。
我现在正在做以下事情:
1)启动应用程序
2) Textview 在 xml 文件中用“START_VALUE”初始化,所以我按下 Button 并显示 pref-value
3)我从控制台运行“adb shell bmgr run”以立即运行备份
4) 我运行“adb uninstall com.foo.backuptest”
5) 我运行“adb install com.foo.backuptest”
现在值(时间戳)没有从云端恢复。生成一个新的。
我的错误在哪里??
【问题讨论】:
-
我没有答案,但在我的一个问题中可能有一些相关信息:BackupManager Not Calling BackupTransport。我一直没能找到解决办法。
-
我在一台装有 Android 2.3 的 HTC 上进行了尝试,它成功了。但同样的应用程序在我的 Galaxy Nexus 4.1.2 上不起作用
-
@Toni4780 你能管理数据的恢复吗?其实我也面临同样的问题
标签: android android-preferences android-backup-service