Pregunta

Me puede crear un nuevo archivo de preferencias llamando Context.getSharedPreferences (String nombre, int modo) , poniendo algunos valores en el editor las preferencias devueltos, y comprometerse. Sin embargo, no veo una interfaz en el API para eliminar el archivo creado cuando ya no lo necesite. He intentado Context.deleteFile (String nombre) , pasando el mismo argumento name desde arriba, sino que los rendimientos false, lo que indica que el archivo no se elimina realmente. Estoy usando MODE_PRIVATE, si eso hace la diferencia.

Navegar por la fuente de puesta en práctica del marco del editor de no revela ninguna pista o bien, en la medida de lo que puedo decir.

Algunas ideas? El fondo aquí es que estoy permitiendo que mis usuarios guardar copias de sus preferencias "actuales" para que puedan restaurar la configuración guardada anteriormente. Cuando ellos no quieren esos ajustes más, Quiero eliminar el archivo de preferencias salvado por lo que no ocupa espacio. Por el momento lo mejor que puedo hacer es un edit().clear().commit en el archivo, lo que creo que va a eliminar la mayor parte de los contenidos. No tan bueno como de eliminación, sin embargo.

¿Fue útil?

Solución

  

He intentado Context.deleteFile (String name), que pasa en el mismo argumento de nombre desde arriba, sino que vuelve falsa, lo que indica el fichero no estaba realmente eliminado.

Esto se debe a que el archivo no se encuentra en ese directorio.

  

El fondo aquí es que estoy permitiendo que mis usuarios guardar copias de sus preferencias "actuales" para que puedan restaurar la configuración guardada anteriormente.

¿Cómo estás haciendo la copia?

Desde el punto de vista de APIs compatibles, que se sirve mejor al hacer que el SharedPreferences real sea la configuración activos actuales, y hacer copias de seguridad y restauraciones a su propio formato de archivo en su propio directorio.

Si ya no quieren ir en esa dirección, el archivo será un archivo XML en el directorio ../shared_prefs relativa a getFilesDir(), para que pueda construir un objeto de archivo adecuado y eliminar de esa manera. Sin embargo, tenga en cuenta que Android podría concebiblemente cambiar esta ubicación después, o incluso cambiar el modelo de almacenamiento, por lo que es posible que encuentre problemas de compatibilidad en el futuro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top