Preferences
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 deDateTime
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.