Статьи

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

В следующих нескольких статьях я покажу вам, как работать с локальными данными на платформе Windows Phone 8, и сравню их с работой с данными на платформе Android.

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

Чтобы сохранить или извлечь данные в виде пары ключ-значение в Windows Phone 8, вы используете  класс IsolatedStorageSettings . Класс IsolatedStorageSettings — это не что иное, как словарь, который позволяет хранить любой сериализуемый объект, например строку, и идеально подходит для сохранения небольших фрагментов данных. Данные, хранящиеся в классе IsolatedStorageSettings, сохраняются в локальной папке приложения, когда приложение закрывается или деактивируется, и автоматически заполняются ранее сохраненными данными при запуске приложения.

Android-совет
Класс  SharedPreferences  в Android аналогичен   классу IsolatedStorageSettings в приложениях для Windows Phone.
Совет по Windows Phone
Поскольку настройки приложения привязаны к времени жизни приложения на устройстве, вы не должны использовать настройки приложения для хранения информации, которую ваши пользователи могут считать ценной или незаменимой. Вы должны рассмотреть возможность использования пользовательских библиотек или SkyDrive для постоянных данных.

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

Давайте теперь посмотрим, как вы пишете и читаете настройки приложения.

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

Чтобы создать в Android Shared Preference ключ  Name  и значение  Me,  вы должны написать код, подобный следующему:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("Name", "Me");
editor.commit();
Android-совет
В Android вы можете создавать файлы настроек, используя  MODE_WORLD_READABLE  и MODE_WORLD_WRITEABLE,  что позволяет другим приложениям, которые знают ваш идентификатор файла, получать доступ к вашим данным. В Windows Phone приложения находятся в «песочнице», и их настройки недоступны для других приложений.

Чтобы создать аналогичную пару ключ-значение в приложении Windows Phone, вы должны написать следующее:

var localSettings = IsolatedStorageSettings.ApplicationSettings;
localSettings.Add("Name", "Me");

Чтение настроек приложения

Чтобы получить общее предпочтение в Android с ключом  Name  и значением по умолчанию  Me  (т. Е. Значением, возвращаемым, если ключ не найден), вы должны написать следующее:

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

Чтобы выполнить аналогичную операцию в хранилище настроек в приложении Windows Phone, вы должны написать:

var localSettings = IsolatedStorageSettings.ApplicationSettings;
string nameValue = (string) localSettings["Name"];

Удаление настроек приложения

Чтобы удалить Shared Preference в Android, используйте следующий код:

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

Чтобы удалить настройку из приложения Windows Phone 8, вы должны использовать:

var localSettings = IsolatedStorageSettings.ApplicationSettings;
localSettings.Remove("Name");
WINDOWS PHONE HINT
Не поддавайтесь искушению использовать  LocalSettings  и / или  RoamingSettings  свойства ApplicationData  класса вместо  ApplicationSettings  собственности IsolatedStorageSettings  класса. Хотя API доступны, они не были реализованы в Windows Phone 8. Исключение будет вызвано, если они будут вызваны.