Пользователи часто хотят сохранить наивысший уровень, которого они достигли в игре, а затем продолжить играть на этом уровне, когда вернутся в свою игру. Или они хотят продолжить чтение с того места, на котором остановились, когда вернутся к читателю. Один из способов включить это — сохранить пары ключ-значение, которые сохраняются на устройстве пользователя между сеансами и даже после закрытия приложения. В приложениях 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");
|
Следующие шаги
Чтобы узнать больше о том, как создавать и получать настройки приложения, см. Следующие ресурсы:
· Быстрый старт: данные локальных приложений