Xamarin.Essentials: Preferencias
La clase Preferences ayuda a almacenar las preferencias de la aplicación en un almacén de clave y valor.
Primeros pasos
Para empezar a usar esta API, lea la guía de introducción para Xamarin.Essentials con el fin de asegurarse de que la biblioteca está correctamente instalada y configurada en los proyectos.
Uso de Preferences
Agregue una referencia a Xamarin.Essentials en la clase:
using Xamarin.Essentials;
Para guardar un valor para una clave determinada en las preferencias:
Preferences.Set("my_key", "my_value");
Para recuperar un valor de las preferencias o un valor predeterminado si no se establece:
var myValue = Preferences.Get("my_key", "default_value");
Para comprobar si una clave determinada existe en las preferencias:
bool hasKey = Preferences.ContainsKey("my_key");
Para quitar la clave de las preferencias:
Preferences.Remove("my_key");
Para quitar todas las preferencias:
Preferences.Clear();
Sugerencia
Los métodos anteriores toman un parámetro string
opcional denominado sharedName
. Este parámetro se usa para crear contenedores adicionales para las preferencias que son útiles en algunos casos de uso. Un caso de uso es cuando la aplicación necesita compartir preferencias entre extensiones o con una aplicación de inspección. Lea los detalles de implementación de la plataforma a continuación.
Tipos de datos admitidos
En Preferences se admiten los tipos de datos siguientes:
- bool
- double
- int
- float
- long
- string
- DateTime
Integración con la configuración del sistema
Las preferencias se almacenan de forma nativa, lo que permite integrar la configuración en la configuración nativa del sistema. Siga la documentación y los ejemplos de la plataforma para integrarlos con ella:
- Apple: Implementación de un lote de configuración de iOS
- Configuración de watchOS
- Android: Introducción a las pantallas de configuración
Detalles de implementación
Los valores de DateTime
se almacenan en un formato binario de 64 bits (entero largo) mediante dos métodos definidos por la clase DateTime
: El método ToBinary
se usa para codificar el valor DateTime
, mientras que el método FromBinary
descodifica el valor. Vea la documentación de estos métodos para obtener los ajustes que se podrían realizar en los valores descodificados cuando se almacena un valor DateTime
que no es de hora universal coordinada (UTC).
Detalles de implementación de la plataforma
Todos los datos se almacenan en Preferencias compartidas. Si no se especifica ningún elemento sharedName
, se usan las preferencias compartidas predeterminadas; de lo contrario, el nombre se usa para obtener una preferencia compartida privada con el nombre especificado.
Persistencia
La desinstalación de la aplicación hará que se quiten todas las preferencias, con la excepción de las aplicaciones que tienen como destino y se ejecutan en Android 6.0 (nivel de API 23), o una versión posterior, que usan copia de seguridad automática. Esta característica está activada de forma predeterminada y conserva los datos de aplicación, incluidas las preferencias compartidas, que son las que usa la API Preferences. Se puede deshabilitar si se sigue la documentación de Google.
Limitaciones
Cuando se almacena una cadena, esta API está pensada para almacenar pequeñas cantidades de texto. El rendimiento puede ser inferior si se intenta usar para almacenar grandes cantidades de texto.