Preferences

Browse sample.Parcourez l’exemple. Parcourir l'exemple

Cet article décrit comment vous pouvez utiliser l'interface IPreferences de l'application multiplateforme .NET MAUI. Cette interface permet de stocker les préférences d’application dans un magasin de clés/valeurs.

L'implémentation par défaut de l'interface IPreferences est disponible via la propriété Preferences.Default. Les deux, l’interface IPreferences et la classe Preferences, sont contenus dans l’espace de noms Microsoft.Maui.Storage.

Types de stockage

Preferences est stocké avec une clé String. La valeur d’une préférence doit être l’un des types de données suivants :

Les valeurs de DateTime sont stockées dans un format binaire 64 bits (entier long) à l’aide de deux méthodes définies par la classe DateTime :

  • La méthode ToBinary est utilisée pour encoder la valeur DateTime.
  • La méthode FromBinary décode la valeur.

Consultez la documentation de ces méthodes pour voir les ajustements que vous pouvez apporter aux valeurs décodées lorsqu’un DateTime est stocké et n’est pas une valeur de temps universel coordonné (UTC).

Définir les préférences

** Preferences sont définis en appelant la méthode Preferences.Set, en fournissant la clé et la valeur :

// Set a string value:
Preferences.Default.Set("first_name", "John");

// Set an numerical value:
Preferences.Default.Set("age", 28);

// Set a boolean value:
Preferences.Default.Set("has_pets", true);

Obtenir les préférences

Pour récupérer une valeur à partir des préférences, vous passez la clé de la préférence, suivie de la valeur par défaut lorsque la clé n’existe pas :

string firstName = Preferences.Default.Get("first_name", "Unknown");
int age = Preferences.Default.Get("age", -1);
bool hasPets = Preferences.Default.Get("has_pets", false);

Dans certains scénarios, vous devrez peut-être transmettre la clé de la préférence, suivie de la valeur par défaut et de son type :

long value = Preferences.Get("master_date", (long)0);

Rechercher une clé

Il peut être utile de vérifier si une clé existe dans les préférences ou non. Même si Get vous demande de définir une valeur par défaut lorsque la clé n’existe pas, il peut y avoir des cas où la clé existe, mais sa valeur correspond à la valeur par défaut. Vous ne pouvez donc pas vous fier à la valeur par défaut comme indicateur de l’inexistence de la clé. Utilisez la méthode ContainsKey pour déterminer si une clé existe :

bool hasKey = Preferences.Default.ContainsKey("my_key");

Supprimer une ou toutes les clés

Utilisez la Remove méthode pour supprimer une clé spécifique des préférences :

Preferences.Default.Remove("first_name");

Pour supprimer toutes les clés, utilisez la méthode Clear :

Preferences.Default.Clear();

Clés partagées

Les préférences stockées par votre application ne sont visibles que par votre application. Toutefois, vous pouvez également créer une préférence partagée qui peut être utilisée par d'autres extensions ou une application pour montre. Lorsque vous définissez, supprimez ou récupérez une préférence, vous pouvez fournir un paramètre de chaîne facultatif pour spécifier le nom du conteneur dans lequel la préférence est stockée.

Les méthodes suivantes prennent une chaîne de caractères nommée sharedName:

  • Preferences.Set
  • Preferences.Get
  • Preferences.Remove
  • Preferences.Clear

Important

Lisez les spécificités de l’implémentation de la plateforme, car les préférences partagées ont des implémentations spécifiques au comportement

Intégrer aux paramètres système

Preferences sont stockés nativement, ce qui vous permet d'intégrer ces paramètres dans les paramètres système natifs. Suivez la documentation de la plateforme pour l’intégration à la plateforme :

  • Apple : Implémentation d'un bundle de préférences iOS
  • Android : Démarrer avec les écrans des paramètres

Différences selon les plateformes

Cette section décrit les différences spécifiques à la plateforme avec l’API préférences.

Toutes les données sont stockées dans un espace de stockage partagé. Si aucun sharedName n’est spécifié, les Eléments Preferences partagés par défaut sont utilisés. Sinon, le nom est utilisé pour obtenir un partagé privé avec le nom spécifié.

Persistance

La désinstallation de l’application entraîne la suppression de toutes les préférences , sauf lorsque l’application s’exécute sur Android 6.0 (niveau d’API 23) ou version ultérieure, lors de l’utilisation de la fonctionnalité sauvegarde automatique . Cette fonctionnalité est activée par défaut et conserve les données d’application, notamment Partagé Preferences, qu’utilise l'API Preferences. Vous pouvez désactiver cette fonctionnalité en suivant la documentation sur la sauvegarde automatique de Google.

Limites

Les performances peuvent être affectées si vous stockez du texte en grande quantité, car l’API a été conçue pour stocker de petites quantités de texte.