Share via


Preferences

Procurar amostra. Procurar no exemplo

Este artigo descreve como você pode usar a interface do usuário do aplicativo .NET multiplataforma (.NET MAUI) IPreferences. Essa interface ajuda a armazenar as preferências do aplicativo em um repositório de chave/valor.

A implementação padrão da interface IPreferences está disponível por meio da propriedade Preferences.Default. A interface IPreferences e a classe Preferences estão contidas no namespace Microsoft.Maui.Storage.

Tipos de armazenamento

Preferences são armazenados com uma chave String. O valor de uma preferência precisa ser um dos seguintes tipos de dados:

Os valores de DateTime são armazenados em um formato binário de 64 bits (inteiro longo) usando dois métodos definidos pela classe DateTime:

  • O método ToBinary é usado para codificar o valor DateTime.
  • O método FromBinary decodifica o valor.

Consulte a documentação desses métodos para ajustes que podem ser feitos em valores decodificados quando um DateTime é armazenado que não é um valor UTC (Tempo Universal Coordenado).

Definir preferências

Preferences são definidos chamando o método Preferences.Set, fornecendo a chave e o valor:

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

Obter preferências

Para recuperar um valor das preferências, você passa a chave da preferência, seguida pelo valor padrão quando a chave não existe:

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

Verificar se há uma chave

Pode ser útil verificar se existe uma chave nas preferências ou não. Embora Get faça com que você defina um valor padrão quando a chave não existe, pode haver casos em que a chave existia, mas o valor da chave correspondia ao valor padrão. Portanto, você não pode confiar no valor padrão como um indicador de que a chave não existe. Use o método ContainsKey para determinar se uma chave existe:

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

Remover uma ou todas as chaves

Use o método Remove para remover uma chave específica das preferências:

Preferences.Default.Remove("first_name");

Para remover todas as chaves, use o método Clear:

Preferences.Default.Clear();

Chaves compartilhadas

As preferências armazenadas pelo aplicativo só são visíveis para seu aplicativo. No entanto, você também pode criar uma preferência compartilhada que pode ser usada por outras extensões ou um aplicativo de inspeção. Quando você define, remove ou recupera uma preferência, um parâmetro de cadeia de caracteres opcional pode ser fornecido para especificar o nome do contêiner no qual a preferência é armazenada.

Os métodos a seguir levam um parâmetro de cadeia de caracteres chamado sharedName:

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

Importante

Leia as especificações de implementação da plataforma, pois as preferências compartilhadas têm implementações específicas a cada comportamento

Integração com as configurações do sistema

Preferences são armazenadas nativamente, o que permite que você integre suas configurações às configurações do sistema nativo. Siga a documentação da plataforma para se integrar à plataforma:

Diferenças de plataforma

Esta seção descreve as diferenças específicas de cada plataforma com a API de preferências.

Todos os dados são armazenados em Preferences Compartilhadas. Se nenhum sharedName for especificado, o padrão Preferences Compartilhadas será usado. Caso contrário, o nome será usado para obter um Preferences Compartilhadas privado com o nome especificado.

Persistência

Desinstalar o aplicativo faz com que todas as preferências sejam removidas, exceto quando o aplicativo é executado no Android 6.0 (nível de API 23) ou posterior, ao usar o recurso de Backup Automático. Esse recurso está ativado por padrão e preserva os dados do aplicativo, incluindo Preferences Compartilhadas, que é o que a API Preferences usa. Você pode desabilitar isso seguindo a documentação do Backup Automático do Google.

Limitações

O desempenho poderá ser afetado se você armazenar grandes quantidades de texto, pois a API foi projetada para armazenar pequenas quantidades de texto.