【问题标题】:Android BackupAgent not workingAndroid BackupAgent 不工作
【发布时间】: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


【解决方案1】:

您的清单文件需要包含以下内容才能启用备份:

android:allowBackup="true"
android:backupAgent="TheBackupAgent"

您的手机备份设置如何?确保选中“备份我的数据”和“自动恢复”,并且您输入了有效的备份帐户电子邮件 ID。

要了解 Google 备份数据的时间和频率,请查看以下链接: Android backup service - when and how often to backup?

根据这个Tester(我刚才也跑了一个备用频率测试):https://advancedweb.hu/2014/12/09/practical_measurement_of_the_android_backup_manager/

只要在自上次数据备份请求后的一小时内至少调用一次 DataChanged(),备份管理器服务就会每小时响应一次(我也在测试中证明了这一点)

要使用命令行进行快速测试,请尝试以下命令:

确保启用数据备份:adb shell bmgr enable true

请求数据备份: adb shell bmgr backup your.package.name

启动数据备份:adb shell bmgr run

要卸载您的应用程序: adb uninstall your.package.name

然后安装你的应用程序:adb install your.package.name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2021-12-07
    • 2015-01-04
    • 2018-03-26
    相关资源
    最近更新 更多