Preferences

Projděte si ukázku. Procházení ukázky

Tento článek popisuje, jak můžete použít rozhraní .NET Multi-Platform App UI (.NET MAUI). IPreferences Toto rozhraní pomáhá ukládat předvolby aplikací do úložiště klíč/hodnota.

Výchozí implementace IPreferences rozhraní je k dispozici prostřednictvím Preferences.Default vlastnosti. Rozhraní IPreferences i Preferences třída jsou obsaženy v Microsoft.Maui.Storage oboru názvů.

Typy úložiště

Preferences jsou uloženy String s klíčem. Hodnota preference musí být jedním z následujících datových typů:

DateTime Hodnoty jsou uloženy v 64bitovém binárním (dlouhém celočíselném) formátu pomocí dvou metod definovaných DateTime třídou:

  • Metoda ToBinary se používá ke kódování DateTime hodnoty.
  • Metoda FromBinary dekóduje hodnotu.

Podívejte se do dokumentace těchto metod pro úpravy, které se můžou provést v dekódovaných hodnotách, pokud DateTime je uložena hodnota koordinovaného univerzálního času (UTC).

Nastavení předvoleb

Preferences jsou nastaveny voláním Preferences.Set metody a zadáním klíče a hodnoty:

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

Získání předvoleb

Pokud chcete načíst hodnotu z předvoleb, předáte klíč předvolby, za kterou následuje výchozí hodnota, pokud klíč neexistuje:

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

Kontrola klíče

Může být užitečné zkontrolovat, jestli klíč existuje v předvolbách nebo ne. I když Get jste nastavili výchozí hodnotu v případě, že klíč neexistuje, mohou existovat případy, kdy klíč existoval, ale hodnota klíče odpovídala výchozí hodnotě. Proto nemůžete spoléhat na výchozí hodnotu jako indikátor, že klíč neexistuje. ContainsKey Pomocí metody určete, jestli klíč existuje:

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

Odebrání jednoho nebo všech klíčů

Remove Pomocí metody odeberte konkrétní klíč z předvoleb:

Preferences.Default.Remove("first_name");

Pokud chcete odebrat všechny klíče, použijte metodu Clear :

Preferences.Default.Clear();

Sdílené klíče

Předvolby uložené vaší aplikací jsou viditelné jenom pro vaši aplikaci. Můžete ale také vytvořit sdílenou předvolbu, kterou můžou používat jiná rozšíření nebo aplikace pro kukátky. Když nastavíte, odeberete nebo načtete předvolbu, můžete zadat volitelný parametr řetězce, který určuje název kontejneru, ve kterém je předvolba uložena.

Následující metody přebírají parametr řetězce s názvem sharedName:

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

Důležité

Přečtěte si specifika implementace platformy, protože sdílené předvolby mají implementace specifické pro chování.

Integrace s nastavením systému

Preferences jsou uloženy nativně, což vám umožní integrovat nastavení do nastavení nativního systému. Postupujte podle dokumentace k platformě a integrujte se s platformou:

Rozdíly mezi platformami

Tato část popisuje rozdíly specifické pro platformu s rozhraním API předvoleb.

Všechna data jsou uložena do sdílené Preferences. Pokud není zadána žádná sharedName , použije se výchozí sdílená Preferences hodnota. V opačném případě se název použije k získání soukromého Preferences sdíleného se zadaným názvem.

Uchování

Odinstalace aplikace způsobí odebrání všech předvoleb , s výjimkou případů, kdy aplikace běží na Androidu 6.0 (rozhraní API úrovně 23) nebo novějším při použití funkce automatického zálohování . Tato funkce je ve výchozím nastavení zapnutá a zachovává data aplikací, včetně sdílených Preferences, což je to, co Preferences rozhraní API používá. Můžete to zakázat podle dokumentace k automatickému zálohování Googlu.

Omezení

Pokud ukládáte velké množství textu, může to mít vliv na výkon, protože rozhraní API bylo navržené tak, aby ukládalo malé množství textu.