2011-08-06 10 views
2

GoogleのAndroidバックアップを取得してGoogle Backupにデータをバックアップする方法を調査し、フォローしました。そのため、ユーザーが電話を忘れたり、そのデータ。しかし、私がそれをテストすると(自分でアプリを使ってアンインストールして再インストールすると)、データは復元されません。ここに私がしたことがあります。おそらく、誰かが間違っていることを理解することができます。グーグルマニフェストファイルに次のコード置か Google Backupサービスへの共有設定のAndroidバックアップが動作しない

  • (キーの代わりに、私はキー値を追加したとのpackageNameのために、私は私のアプリのパッケージ名を使用)

    android:backupAgent="packageName.MyPrefsBackup"> 
    <meta-data android:name="com.google.android.backup.api_key" android:value="key" />  
    
  • からバックアップキーの

    1. 応用
    2. 次のコードのクラスMyPrefsBackupを作成しました。バックアップするsharedpreferenceファイルの名前はUserDBと呼ばれます。限り、PREFS_BACKIP_KEY、私はそれをprefsと呼ばれる。私が理解していることから、これはマニフェストファイルにあるキーと同じではありません。私は次のステップ

    3. 最後に、バックアップマネージャを呼び出して、私のメインクラスで

      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);、私のメインプログラムの中で、私はbackupHelperを呼び出す:

      コードデータは次の行で変更されます。

      mBackupManager.dataChanged(); 
      

    ご協力いただきまして誠にありがとうございます。あなたがバックアップを有効にする必要があります - - AVDは、デフォルトでは、バックアップのために無効になっている

    答えて

    1

    あなたはAVDからこれをテストしている場合、新しいBackupManager(これは)()

    +0

    感謝を実行BMGR adbのシェルを実行した後に呼び出されたかどうかを確認するために、それをデバッグすることができ、私は数日間試してみるとがあれば戻って報告することをあげる可能BMGRできます。上記のスクリプトを追加していないのを忘れたBackupManager mBackupManager = new BackupManager(これ);私の主なアプリの変数宣言セクションにあります。 – gbotha

    +0

    これはまだ動作していません。市場からアプリをインストールした後、dataChanged()コマンドを呼び出すデータベースを編集してテストします。その後、約2〜3日待ってから、アプリをアンインストールして再インストールします。再インストール時に、私はデータベースをリロードするよう求められません。恥ずかしい......誰かからのさらなる助け? – gbotha

    +0

    SharedPrefsのみをバックアップしています。あなたはデータベースとファイルをバックアップしませんでした。それは私が推測する問題です。 – tasomaniac

    0

    を.dataChangedしてみてください。 のadbシェルは真が続い

    あなたが実際のonCreateが

    関連する問題