2010-10-17 20 views
8

Estoy implementando el nuevo BackupAgentHelper de Android OS 2.2.Copia de seguridad de datos de Android 2.2: ¿cómo hacer una copia de seguridad de DefaultSharedPreferences?

Para que funcione es necesario proporcionar el nombre de la SharedPreferences que desea hacer copia de seguridad:

public class MyPrefsBackupAgent extends BackupAgentHelper { 
// The name of the SharedPreferences file 
static final String PREFS = "user_preferences"; 

// 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 
void onCreate() { 
    SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS); 
    addHelper(PREFS_BACKUP_KEY, helper); 
} 
} 

El problema es que utilizo el método PreferenceManager.getDefaultSharedPreferences() en mi solicitud para obtener el valor por defecto compartida ejemplo preferencias. Ahora necesito proporcionar el nombre de ese archivo. ¿Cómo puedo saber qué nombre es?

(¿Y por qué no suministran un ayudante que sólo hace una copia de seguridad DefaultSharedPreferences?)

Respuesta

16

parece que se llama "packagename_preferences"

+2

Sí, si explora/data/data//shared_prefs se puede ver los archivos usados ​​para SharedPreferences. El nombre que necesita es de hecho _preferences. Además, creé un problema para solicitar una forma más conveniente de hacer esto para las SharedPreferences "predeterminadas": http://code.google.com/p/android/issues/detail?id=11922. (Estoy de acuerdo con usted, debería estar allí.) –

+0

¿Cómo hacer una copia de seguridad del conjunto de datos con una actividad de preferencia? – whynot

+1

Si establece un punto de interrupción en 'prefs = PreferenceManager.getDefaultSharedPreferences (this);' puede consultar mBackupFile para obtener el nombre del archivo xml. –

Cuestiones relacionadas