Condividi tramite


Preferences

Sfogliare l'esempio. Esplorare l'esempio

Questo articolo descrive come usare l'interfaccia dell'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI). IPreferences Questa interfaccia consente di archiviare l'app preferences in un archivio chiave/valore.

L'implementazione predefinita dell'interfaccia IPreferences è disponibile tramite la Preferences.Default proprietà . Sia l'interfaccia che Preferences la IPreferences classe sono contenute nello spazio dei Microsoft.Maui.Storage nomi .

Tipi di archiviazione

Preferences vengono archiviati con una String chiave. Il valore di una preferenza deve essere uno dei tipi di dati seguenti:

I valori di DateTime vengono archiviati in un formato binario a 64 bit (long integer) usando due metodi definiti dalla classe DateTime:

  • Il ToBinary metodo viene usato per codificare il DateTime valore.
  • Il FromBinary metodo decodifica il valore.

Vedere la documentazione di questi metodi per le modifiche che potrebbero essere apportate ai valori decodificati quando viene archiviato un DateTime oggetto che non è un valore UTC (Coordinated Universal Time).

Impostare preferences

Preferences vengono impostati chiamando il Preferences.Set metodo , specificando la chiave e il valore:

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

Ottieni preferences

Per recuperare un valore da preferences si passa la chiave della preferenza, seguita dal valore predefinito quando la chiave non esiste:

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

In alcuni scenari potrebbe essere necessario passare la chiave della preferenza, seguita dal valore predefinito e dal relativo tipo:

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

Verificare la presenza di una chiave

Può essere utile verificare se esiste una chiave in preferences o meno. Anche se Get è stato impostato un valore predefinito quando la chiave non esiste, potrebbero esistere casi in cui la chiave esiste, ma il valore della chiave corrisponde al valore predefinito. Non è quindi possibile fare affidamento sul valore predefinito come indicatore che la chiave non esiste. Usare il ContainsKey metodo per determinare se esiste una chiave:

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

Rimuovere una o tutte le chiavi

Usare il Remove metodo per rimuovere una chiave specifica da preferences:

Preferences.Default.Remove("first_name");

Per rimuovere tutte le chiavi, usare il Clear metodo :

Preferences.Default.Clear();

Chiavi condivise

L'oggetto preferences archiviato dall'app è visibile solo all'app. Tuttavia, puoi anche creare una preferenza condivisa che può essere usata da altre estensioni o da un'app watch. Quando si imposta, si rimuove o si recupera una preferenza, è possibile specificare un parametro stringa facoltativo per specificare il nome del contenitore in cui è archiviata la preferenza.

I metodi seguenti accettano un parametro stringa denominato sharedName:

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

Importante

Leggere le specifiche dell'implementazione della piattaforma, perché hanno implementazioni specifiche del comportamento condivise preferences

Integrazione con le impostazioni di sistema

Preferences vengono archiviati in modo nativo, che consente di integrare le impostazioni nelle impostazioni di sistema native. Seguire la documentazione della piattaforma per l'integrazione con la piattaforma:

Differenze tra le piattaforme

Questa sezione descrive le differenze specifiche della piattaforma con l'API preferences .

Tutti i dati vengono archiviati in Condiviso Preferences. Se non viene specificato alcun sharedName valore, viene utilizzato il valore predefinito Condiviso Preferences . In caso contrario, il nome viene usato per ottenere un oggetto Condiviso Preferences privato con il nome specificato.

Persistenza

La disinstallazione dell'applicazione comporta la rimozione di tutti preferences , tranne quando l'app viene eseguita in Android 6.0 (livello API 23) o versione successiva, usando la funzionalità Backup automatico. Questa funzionalità è attivata per impostazione predefinita e mantiene i dati dell'app, incluso Shared Preferences, che è ciò che l'API Preferences usa. È possibile disabilitare questa opzione seguendo la documentazione di Backup automatico di Google.

Limiti

Le prestazioni possono essere influenzate se si archivia una grande quantità di testo, perché l'API è stata progettata per archiviare piccole quantità di testo.