Freigeben über


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 dabei, die preferences der App in einem Schlüssel/Wert-Speicher zu speichern.

Die Standardimplementierung der IPreferences-Schnittstelle ist über die Preferences.Default-Eigenschaft 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.

Legen Sie preferences fest.

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

Get preferences

Um einen Wert aus preferences abzurufen, übergeben Sie den Schlüssel der Voreinstellung, gefolgt vom 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);

In einigen Szenarien müssen Sie möglicherweise den Schlüssel der Einstellung übergeben, gefolgt vom Standardwert und seinem Typ:

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

Suchen nach einem Schlüssel

Es kann nützlich sein, zu überprüfen, ob ein Schlüssel in preferences 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 preferences 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 preferences, die von Ihrer App gespeichert werden, 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 preferences 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

Dieser Abschnitt beschreibt die plattformspezifischen Unterschiede mit der preferences-API.

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

Wenn Sie die Anwendung deinstallieren, werden alle preferences entfernt, außer wenn die App unter Android 6.0 (API-Ebene 23) oder höher läuft und die Funktion Automatische Sicherung 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.