Preferences
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 denDateTime
-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:
- Apple: Implementieren eines iOS-Einstellungsbündels
- Android: Erste Schritte mit den Einstellungen für Bildschirme
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.