Статьи

Android для Windows 8: работа с парами ключ-значение

Пользователи часто хотят сохранить наивысший уровень, которого они достигли в игре, а затем продолжить играть на этом уровне, когда вернутся в свою игру. Или они хотят продолжить чтение с того места, на котором остановились, когда вернутся к читателю. Один из способов включить это — сохранить пары ключ-значение, которые сохраняются на устройстве пользователя между сеансами и даже после закрытия приложения. В приложениях Android эти пары ключ-значение называются общими предпочтениями . В приложениях Магазина Windows они называются настройками приложения или просто настройками приложения .

Для чтения и записи общих настроек в приложениях Android вы используете класс SharedPreferences . Для чтения и записи параметров приложения в приложениях Магазина Windows вы используете класс ApplicationData .

Совет Windows
В приложениях Магазина Windows вы также можете создавать пары ключ-значение с помощью класса Dictionary , но такие пары хранятся только в локальной памяти. Они исчезают после того, как выходят за рамки кода вашего приложения.

Вот как настройки приложения работают за кулисами для приложений Магазина Windows. Когда пользователь устанавливает приложение, Windows создает специальное местоположение и некоторые специальные записи реестра на устройстве для хранения настроек этого приложения. Вам не нужно беспокоиться о том, где найти это местоположение и записи реестра, потому что Windows отслеживает их для вас. Вы просто используете класс ApplicationData для доступа к ним. Если пользователь удаляет приложение, Windows автоматически удаляет соответствующее расположение параметров приложения и записи реестра. Вам не нужно беспокоиться об их очистке.

Совет Windows
Вы можете хранить не только настройки приложения. Например, вы можете хранить документы, связанные с этим конкретным приложением. Однако если пользователь удалит это приложение, соответствующие документы также будут автоматически удалены. Если эти документы особенно ценны, храните их в более постоянном месте, например, в настройках и файлах пользователя SkyDrive. Все приложения и файлы вместе называются данными приложения или просто данными приложения . В этом посте рассматриваются только настройки приложения.

В приложениях Магазина Windows вы можете хранить настройки приложений двумя способами: локально и в роуминге . Локальные настройки хранятся только на текущем устройстве. Настройки роуминга являются общими для всех устройств, на которых пользователь установил приложение.

Вот все типы данных, для которых вы можете создать настройки приложения.

логический Guid Rect UInt16
Байт Int16 Один UInt32
голец Int32 Размер UInt64
Char16 Int64 строка Uri
DateTime объект Промежуток времени пустота
двойной точка uint8

Вот как можно создать и получить настройки приложения в коде.

Создать настройки приложения

В приложении Магазина Windows, чтобы создать локальную настройку приложения с ключом «Имя» и значением «Я», напишите такой код.

var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["Name"] = "Me";

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

var roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
roamingSettings.Values["Name"] = "Me";

Совет Windows
Хотя вы можете хранить настройки приложения как в локальном, так и в роуминге месте, вам это не нужно.
Android-совет
В приложениях Android, чтобы создать похожую общую настройку, напишите такой код.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString("Name", "Me"); 
editor.commit();

Вы можете обмениваться настройками между приложениями, используя интерактивные механизмы в классах ContentProvider , BroadcastReceiver и Service . В отличие от приложений Windows Store могут получить доступ только к своим настройкам приложения.

Получить настройки приложения

В приложении Магазина Windows, чтобы получить настройку локального приложения с ключом «Имя» и значением по умолчанию «Я» (то есть значение «Я» возвращается, если приложение не может найти ключ «Имя» ), напишите такой код.

string nameValue = "";
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

Object value = localSettings.Values["Name"];

if (!value)
 nameValue = value.ToString();
else
 nameValue = "Me";

Чтобы получить аналогичную настройку приложения для роуминга, напишите такой код.

string nameValue = "";
var roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;

Object value = roamingSettings.Values["Name"];

if (!value)
 nameValue = value.ToString();
else
 nameValue = "Me";

Android-совет
В приложениях Android, чтобы получить аналогичные общие предпочтения, напишите такой код.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
string nameValue = sharedPref.getString("Name", "Me");

Следующие шаги

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

· Быстрый старт: данные локальных приложений

· Быстрый старт: данные приложений в роуминге

· Пример данных приложения