Udostępnij za pośrednictwem


Preferences

Przeglądaj przykład. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IPreferences Ten interfejs ułatwia 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 kodowania DateTime 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ślną, 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);

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

Remove Użyj metody , 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 automatycznej kopii zapasowej . 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.