2016-04-03 8 views
1

In meiner Backupagent-Klasse Ich habe dies:Android Speichern Gemeinsam genutzte Einstellungen Backup Agent

import android.app.backup.BackupAgentHelper; 
import android.app.backup.SharedPreferencesBackupHelper; 

public class TheBackupAgent extends BackupAgentHelper { 
    // The names of the SharedPreferences groups that the application maintains. These 
    // are the same strings that are passed to getSharedPreferences(String, int). 
    static final String RECIPE_NAMES = "MyRecipeNames"; 
    static final String TEST = "testSave"; 

    // An arbitrary string used within the BackupAgentHelper implementation to 
    // identify the SharedPreferencesBackupHelper's data. 
    static final String MY_PREFS_BACKUP_KEY = "myprefs"; 

    // Simply allocate a helper and install it 
    public void onCreate() { 
     SharedPreferencesBackupHelper helper = 
       new SharedPreferencesBackupHelper(this, TEST); 
     addHelper(MY_PREFS_BACKUP_KEY, helper); 
    } 
} 

ich dann Code habe eine Zeichenfolge in die testSave Gemeinsame Einstellungen zu speichern und fordern Sie eine Sicherung der Einstellungen:

public void requestBackup() { 
    BackupManager bm = new BackupManager(this); 
    bm.dataChanged(); 
} 

public void saveRecipe (View v) { 

    SharedPreferences prefs = getApplicationContext().getSharedPreferences("testSave", 0); 
    SharedPreferences.Editor editor = prefs.edit(); 
    editor.putString("testString", "This is my saved data."); 
    editor.apply(); 

    requestBackup(); 
} 

Ich versuche dann, die App zu deinstallieren und neu zu installieren und die gespeicherten Daten sind weg. Ich habe den Code zum Manifest hinzugefügt, aber es funktioniert nicht. Muss meine App im Play Store sein? Ich habe wirklich keine Ahnung, warum es nicht funktionieren wird.

Antwort

0

Sie können Ihren Sicherungsagenten mit dem Tool bmgr testen, das Teil Ihres Android SDK ist (ein Befehl in adb). See here how it can be used.

+0

Ich habe ADB verwendet, um manuell zu sichern und wiederherzustellen, aber die sharedPrefs sind immer noch Null, wenn ich neu installiere. – tgreen

+1

'editor.putString (" testString "," Dies sind meine gespeicherten Daten. ");' Sollte 'editor.putString (" myprefs "," Das sind meine gespeicherten Daten. ");' Weil das der Schlüsselname ist, den Sie geben im Helfer. –

Verwandte Themen