Preferences
W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IPreferences
Ten interfejs umożliwia przechowywanie preferencji aplikacji w magazynie klucz-wartość.
Domyślna implementacja interfejsu IPreferences
jest dostępna za pośrednictwem Preferences.Default
właściwości . Zarówno interfejs, jak IPreferences
i Preferences
klasa są zawarte w Microsoft.Maui.Storage
przestrzeni nazw.
Typy magazynu
Preferences są przechowywane przy użyciu String klucza. Wartość preferencji musi być jednym z następujących typów danych:
DateTime
Wartości są przechowywane w 64-bitowym formacie binarnym (długa liczba całkowita) przy użyciu dwóch metod zdefiniowanych przez klasęDateTime
:
- Metoda
ToBinary
służy do kodowaniaDateTime
wartości. - Metoda
FromBinary
dekoduje wartość.
Zapoznaj się z dokumentacją tych metod, aby uzyskać korekty, które mogą zostać wprowadzone w celu dekodowania wartości, gdy DateTime
element jest przechowywany, który nie jest wartością uniwersalnego czasu koordynowanego (UTC).
Ustawianie preferencji
Preferences parametr jest ustawiany przez wywołanie Preferences.Set
metody , podając klucz i wartość:
// 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);
Pobieranie preferencji
Aby pobrać wartość z preferencji, należy przekazać klucz preferencji, a następnie wartość domyślna, gdy klucz nie istnieje:
string firstName = Preferences.Default.Get("first_name", "Unknown");
int age = Preferences.Default.Get("age", -1);
bool hasPets = Preferences.Default.Get("has_pets", false);
W niektórych scenariuszach może być konieczne przekazanie klucza preferencji, a następnie wartości domyślnej i jego typu:
long value = Preferences.Get("master_date", (long)0);
Sprawdzanie klucza
Warto sprawdzić, czy klucz istnieje w preferencjach, czy nie. Mimo że Get
ustawiono wartość domyślną, gdy klucz nie istnieje, mogą istnieć przypadki, w których istniał klucz, ale wartość klucza była zgodna z wartością domyślną. Nie można więc polegać na wartości domyślnej jako wskaźnika, że klucz nie istnieje.
ContainsKey
Użyj metody , aby określić, czy istnieje klucz:
bool hasKey = Preferences.Default.ContainsKey("my_key");
Usuń jeden lub wszystkie klucze
Użyj metody Remove
, aby usunąć określony klucz z preferencji:
Preferences.Default.Remove("first_name");
Aby usunąć wszystkie klucze, użyj Clear
metody :
Preferences.Default.Clear();
Klucze udostępnione
Preferencje przechowywane przez aplikację są widoczne tylko dla aplikacji. Można jednak również utworzyć współużytkowane preferencje, które mogą być używane przez inne rozszerzenia lub aplikację do oglądania. Po ustawieniu, usunięciu lub pobraniu preferencji można podać opcjonalny parametr ciągu, aby określić nazwę kontenera, w którym są przechowywane preferencje.
Następujące metody przyjmują parametr ciągu o nazwie sharedName
:
Preferences.Set
Preferences.Get
Preferences.Remove
Preferences.Clear
Ważne
Przeczytaj szczegóły implementacji platformy, ponieważ wspólne preferencje mają implementacje specyficzne dla zachowania
Integracja z ustawieniami systemu
Preferences są przechowywane natywnie, co pozwala zintegrować ustawienia z ustawieniami systemu natywnego. Postępuj zgodnie z dokumentacją platformy, aby zintegrować z platformą:
Różnice między platformami
W tej sekcji opisano różnice specyficzne dla platformy dotyczące interfejsu API preferencji.
Wszystkie dane są przechowywane w udostępnionym Preferencesobiekcie . Jeśli nie sharedName
zostanie określony, zostanie użyta domyślna wartość Udostępniona Preferences . W przeciwnym razie nazwa jest używana do pobierania prywatnej nazwy Udostępnione Preferences z określoną nazwą.
Trwałość
Odinstalowanie aplikacji powoduje usunięcie wszystkich preferencji , z wyjątkiem sytuacji, gdy aplikacja działa w systemie Android 6.0 (poziom 23 interfejsu API) lub nowszym podczas korzystania z funkcji Auto Backup. Ta funkcja jest domyślnie włączona i zachowuje dane aplikacji, w tym udostępnione Preferences, czyli używane przez Preferences interfejs API. Możesz to wyłączyć, postępując zgodnie z dokumentacją automatycznego tworzenia kopii zapasowej firmy Google.
Ograniczenia
Wydajność może mieć wpływ na przechowywanie dużych ilości tekstu, ponieważ interfejs API został zaprojektowany do przechowywania małych ilości tekstu.