2

ユーザーが電話を紛失したり、新しい電話にアップグレードしたりしても、データが失われないように、AndroidアプリでデータをGoogleバックアップにバックアップする方法を調査して従いました。ただし、テスト (自分でアプリを使用してからアンインストールしてから再インストール) すると、データは復元されません。これが私がやったことです。おそらく、誰かが何が間違っているかを理解できるでしょう。

  1. Google からバックアップ キーを申請済み
  2. 次のコードをマニフェスト ファイルに配置しました (キーの代わりにキーの値を追加し、packageName にはアプリのパッケージ名を使用しました)。

    android:backupAgent="packageName.MyPrefsBackup">
    <meta-data android:name="com.google.android.backup.api_key" android:value="key" />    
    
  3. MyPrefsBackup次のコードでクラスを作成しました。バックアップしたい共有設定ファイルの名前は UserDB と呼ばれます。に関する限りPREFS_BACKIP_KEY、私はそれを prefs と呼びました。私が理解していることから、これはマニフェスト ファイルに含まれるキーと同じキーではありません。

コード:

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);


    }
}
  1. BackupManager mBackupManager = new BackupManager(this);次のステップでバックアップマネージャーを呼び出すメインクラスに追加しました

  2. 最後に、私のメイン プログラムではbackupHelper、次の行でデータが変更されたときに呼び出します。

    mBackupManager.dataChanged();
    

どんな助けでも大歓迎です。

4

2 に答える 2

1

新しいBackupManager(this).dataChanged()を試してください

于 2011-08-06T04:12:05.480 に答える
0

これを AVD からテストする場合は、バックアップを有効にする必要があります。AVD はデフォルトでバックアップに対して無効になっています。adb shell bmgr enable true

次に、実際にデバッグして、 adb shell bmgr run の実行後に onCreate が呼び出されるかどうかを確認できます

于 2011-10-14T16:54:51.427 に答える