Поделиться через


Preferences

Просмотрите пример. Обзор примера

В этой статье описывается, как использовать интерфейс многоплатформенного приложения .NET (.NET MAUI). IPreferences Этот интерфейс помогает хранить приложение preferences в хранилище ключей и значений.

Реализация интерфейса по умолчанию IPreferences доступна через Preferences.Default свойство. Интерфейс IPreferences и Preferences класс содержатся в Microsoft.Maui.Storage пространстве имен.

Типы хранилищ

Preferences хранится с ключом String . Значение предпочтения должно быть одним из следующих типов данных:

Значения DateTime хранятся в 64-разрядном двоичном формате (длинное целое) с использованием двух методов, определенных классом DateTime.

  • Метод ToBinary используется для кодирования DateTime значения.
  • Метод FromBinary декодирует значение.

Ознакомьтесь с документацией по этим методам для корректировки, которые могут быть сделаны в декодированные значения при DateTime хранении, которое не является значением UTC.

Задайте значение preferences.

Preferences задаются путем вызова Preferences.Set метода, предоставляя ключ и значение:

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

Get preferences

Чтобы получить значение от preferences вас, передайте ключ предпочтения, а затем значение по умолчанию, когда ключ не существует:

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

В некоторых сценариях может потребоваться передать ключ предпочтения, за которым следует значение по умолчанию и его тип:

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

Проверка ключа

Это может быть полезно, чтобы проверить, существует ли ключ в preferences или нет. Даже если задано значение по умолчанию, если Get ключ не существует, могут возникнуть случаи, когда ключ существовал, но значение ключа соответствовало значению по умолчанию. Поэтому нельзя полагаться на значение по умолчанию в качестве индикатора того, что ключ не существует. ContainsKey Используйте метод, чтобы определить, существует ли ключ:

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

Удаление одного или всех ключей

Remove Используйте метод для удаления определенного ключа изpreferences:

Preferences.Default.Remove("first_name");

Чтобы удалить все ключи Clear , используйте метод:

Preferences.Default.Clear();

Общие ключи

Сохраненные preferences приложением видны только вашему приложению. Однако вы также можете создать общие предпочтения, которые можно использовать другими расширениями или приложением наблюдения. При установке, удалении или получении предпочтения можно указать необязательный строковый параметр, чтобы указать имя контейнера, в который хранится предпочтение.

Следующие методы принимают строковый параметр с именем sharedName:

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

Внимание

Ознакомьтесь с конкретными сведениями о реализации платформы, так как общие preferences реализации зависят от поведения.

Интеграция с параметрами системы

Preferences хранятся в собственном коде, что позволяет интегрировать параметры в собственные системные параметры. Следуйте документации по платформе для интеграции с платформой:

Различия между платформами

В этом разделе описываются различия платформы с preferences API.

Все данные хранятся в общих данных Preferences. Если значение не sharedName указано, используется общий доступ Preferences по умолчанию. В противном случае имя используется для получения частного общего доступа Preferences с указанным именем.

Сохраняемость

Удаление приложения приводит к удалению всех preferences , за исключением случаев, когда приложение выполняется на android 6.0 (уровень API 23) или более поздней версии, при использовании функции автоматического резервного копирования . Эта функция включена по умолчанию и сохраняет данные приложения, в том числе общие Preferences, что Preferences использует API. Это можно отключить, следуя документации по автоматическому резервному копированию Google.

Ограничения

Производительность может повлиять на хранение больших объемов текста, так как API был разработан для хранения небольших объемов текста.