Delen via


Preferences

Voorbeeld bekijken. Blader door het voorbeeld

In dit artikel wordt beschreven hoe u de .NET Multi-Platform App UI (.NET MAUI) IPreferences interface kunt gebruiken. Deze interface helpt app-voorkeuren op te slaan in een sleutel-/waardearchief.

De standaard implementatie van de IPreferences-interface is beschikbaar via de eigenschap Preferences.Default. Zowel de IPreferences-interface als Preferences klasse bevinden zich in de Microsoft.Maui.Storage naamruimte.

Opslagtypen

Preferences worden opgeslagen met een String sleutel. De waarde van een voorkeur moet een van de volgende gegevenstypen zijn:

Waarden van DateTime worden opgeslagen in een 64-bits binaire indeling (lang geheel getal) met behulp van twee methoden die zijn gedefinieerd door de DateTime klasse:

  • De methode ToBinary wordt gebruikt om de DateTime waarde te coderen.
  • De FromBinary-methode decodeert de waarde.

Raadpleeg de documentatie van deze methoden voor aanpassingen die kunnen worden aangebracht in gedecodeerde waarden wanneer een DateTime wordt opgeslagen die geen UTC-waarde (Coordinated Universal Time) is.

Voorkeuren instellen

Preferences worden ingesteld door de methode Preferences.Set aan te roepen, waarbij de sleutel en waarde worden opgegeven:

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

Voorkeuren ophalen

Als u een waarde wilt ophalen uit voorkeuren, geeft u de sleutel van de voorkeur door, gevolgd door de standaardwaarde wanneer de sleutel niet bestaat:

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

In sommige scenario's moet u mogelijk de sleutel van de voorkeur doorgeven, gevolgd door de standaardwaarde en het bijbehorende type:

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

Zoek naar een sleutel

Het kan handig zijn om te controleren of er een sleutel bestaat in de voorkeuren of niet. Hoewel Get u een standaardwaarde hebt ingesteld wanneer de sleutel niet bestaat, kunnen er gevallen zijn waarin de sleutel bestaat, maar de waarde van de sleutel overeenkomt met de standaardwaarde. U kunt dus niet vertrouwen op de standaardwaarde als indicator dat de sleutel niet bestaat. Gebruik de methode ContainsKey om te bepalen of er een sleutel bestaat:

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

Een of alle sleutels verwijderen

Gebruik de methode Remove om een specifieke sleutel uit voorkeuren te verwijderen:

Preferences.Default.Remove("first_name");

Als u alle sleutels wilt verwijderen, gebruikt u de methode Clear:

Preferences.Default.Clear();

Gedeelde sleutels

De voorkeuren die door uw app zijn opgeslagen, zijn alleen zichtbaar voor uw app. U kunt echter ook een gedeelde voorkeur maken die door andere extensies of een smartwatch-app kan worden gebruikt. Wanneer u een voorkeur instelt, verwijdert of ophaalt, kan een optionele tekenreeksparameter worden opgegeven om de naam op te geven van de container waarin de voorkeur wordt opgeslagen.

De volgende methoden gebruiken een tekenreeksparameter met de naam sharedName:

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

Belangrijk

Lees de details van de platform-implementatie, omdat gedeelde voorkeuren gedragsspecifieke implementaties hebben

Integreren met systeeminstellingen

Preferences worden in oorspronkelijke vorm opgeslagen, zodat u uw instellingen kunt integreren in de systeemeigen instellingen. Volg de platformdocumentatie om te integreren met het platform:

Platformverschillen

In deze sectie worden de platformspecifieke verschillen met de voorkeuren-API beschreven.

Alle gegevens worden opgeslagen in Gedeelde Preferences. Als er geen sharedName is opgegeven, worden de standaard Gedeelde Preferences gebruikt. Anders wordt de naam gebruikt om een gedeelde privé Preferences op te halen met de opgegeven naam.

Volharding

Als u de toepassing verwijdert, worden alle voorkeuren verwijderd, behalve wanneer de app wordt uitgevoerd op Android 6.0 (API-niveau 23) of hoger, terwijl u de functie Automatische back-up gebruikt. Deze functie is standaard ingeschakeld en behoudt app-gegevens, inclusief Gedeelde Preferences, wat door de Preferences API wordt gebruikt. U kunt dit uitschakelen door de autoback-updocumentatie van Google te volgen.

Beperkingen

De prestaties kunnen worden beïnvloed als u grote hoeveelheden tekst opslaat, omdat de API is ontworpen om kleine hoeveelheden tekst op te slaan.