Share via


Preferences

Beispiel durchsuchen.Durchsuchen Sie das Beispiel

In diesem Artikel wird beschrieben, wie Sie die .NET Multi-Platform App UI (.NET MAUI) IPreferences-Schnittstelle verwenden können. Diese Schnittstelle hilft beim Speichern von App-Einstellungen in einem Schlüssel-/Wertspeicher.

Die Standardimplementierung der IPreferences-Schnittstelle ist über die Eigenschaft Preferences.Default verfügbar. Sowohl die IPreferences Schnittstelle als auch die Preferences Klasse sind im Microsoft.Maui.Storage Namespace enthalten.

Speichertypen

Preferences werden mit einem String Schlüssel gespeichert. Der Wert einer Einstellung muss einer der folgenden Datentypen entsprechen:

Werte von DateTime werden in einem 64-Bit-Binärdateiformat (lang Integer) gespeichert, wobei zwei durch die DateTime-Klasse definierte Methoden verwendet werden:

  • Die ToBinary-Methode wird verwendet, um den DateTime-Wert zu codieren.
  • Die FromBinary-Methode decodiert den Wert.

Siehe die Dokumentation dieser Methoden für Anpassungen, die an dekodierten Werten vorgenommen werden können, wenn ein DateTime gespeichert wird, der kein UTC-Wert (Coordinated Universal Time) ist.

Einstellungen festlegen

Preferences werden durch Aufrufen der Preferences.Set-Methode festgelegt, wobei der Schlüssel und der Wert bereitgestellt werden:

// 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);

Abrufen von Einstellungen

Um einen Wert aus den Einstellungen abzurufen, übergeben Sie den Schlüssel der Einstellung, gefolgt von dem Standardwert, wenn der Schlüssel nicht existiert:

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

Suchen nach einem Schlüssel

Es kann hilfreich sein, zu überprüfen, ob ein Schlüssel in den Einstellungen vorhanden ist oder nicht. Auch wenn Get Sie einen Standardwert festlegen lässt, wenn der Schlüssel nicht existiert, kann es Fälle geben, in denen der Schlüssel zwar existiert, der Wert des Schlüssels aber mit dem Standardwert übereinstimmt. Sie können sich also nicht auf den Standardwert als Indikator verlassen, dass der Schlüssel nicht vorhanden ist. Verwenden Sie die Methode ContainsKey, um festzustellen, ob ein Schlüssel vorhanden ist:

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

Einen oder alle Schlüssel entfernen

Verwenden Sie die Remove-Methode, um einen bestimmten Schlüssel aus den Einstellungen zu entfernen:

Preferences.Default.Remove("first_name");

Um alle Schlüssel zu entfernen, verwenden Sie die Clear-Methode:

Preferences.Default.Clear();

Gemeinsame Schlüssel

Die von Ihrer App gespeicherten Einstellungen sind nur für Ihre App sichtbar. Sie können jedoch auch eine freigegebene Einstellung erstellen, die von anderen Erweiterungen oder einer Watch-App verwendet werden kann. Wenn Sie eine Einstellung festlegen, entfernen oder abrufen, kann ein optionaler Zeichenfolgenparameter angegeben werden, um den Namen des Containers anzugeben, in dem die Einstellung gespeichert ist.

Die folgenden Methoden verwenden einen Zeichenfolgenparameter mit dem Namen sharedName:

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

Wichtig

Bitte lesen Sie die Spezifikation der Plattformimplementierung, da gemeinsame Einstellungen verhaltensspezifische Implementierungen haben

Integrieren mit Systemeinstellungen

Preferences werden nativ gespeichert, was es Ihnen ermöglicht, Ihre Einstellungen in die nativen Systemeinstellungen zu integrieren. Folgen Sie der Plattformdokumentation für die Integration in die Plattform:

Plattformunterschiede

In diesem Abschnitt werden die plattformspezifischen Unterschiede zur Einstellungs-API beschrieben.

Alle Daten werden in Freigegeben Preferences gespeichert. Wenn kein sharedName angegeben wird, werden die Standardwerte Freigegeben Preferences verwendet. Andernfalls wird der Name verwendet, um ein privat freigegeben Preferences mit dem angegebenen Namen zu erhalten.

Persistenz

Die Deinstallation der Anwendung führt dazu, dass alle Voreinstellungen entfernt werden, es sei denn, die Anwendung läuft unter Android 6.0 (API Level 23) oder höher, während die Auto Backup-Funktion verwendet wird. Diese Funktion ist standardmäßig aktiviert und behält die App-Daten bei, einschließlich Freigegeben Preferences, die von der Preferences API verwendet wird. Sie können dies deaktivieren, indem Sie die Dokumentation Auto Backup von Google befolgen.

Begrenzungen

Die Leistung kann beeinträchtigt werden, wenn Sie große Textmengen speichern, da die API so konzipiert wurde, dass kleine Textmengen gespeichert werden.