Сохранения данных с помощью Isolated Storage в Windows Phone 7

Для сохранения информации в приложениях для Windows Phone 7 используется изолированное хранилище (Isolated Storage). Изолированное хранение позволяет управляемым приложениям сохранять и восстанавливать информацию из локального хранилища. Архитектура подобна используемой в Silverlight 4. Все операции ввода вывода ограничены размером изолированного хранилища, и они не имеют прямого доступа к файлам операционной системы.

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

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

using System.IO.IsolatedStorage;

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

Save – сохраняет данные в хранилище.

Load – загружает данные из хранилища.

Clear – очищает хранилище.

image

Создадим обработчик события на нажатие каждой из кнопки и подключим к ним методы. Перейдем к методу Save_Click, который выполняется по нажатию на кнопку Save. Для того что бы сохранить данные в хранилище нужно свойству ApplicationSettings класса IsolatedStorageSettings с ключом присвоить значение переменой данные из которой мы сохраняем:

private void Save_Click(object sender, RoutedEventArgs e)
{
    IsolatedStorageSettings.ApplicationSettings["s1"] = textBox1.Text.ToString();
    IsolatedStorageSettings.ApplicationSettings["s2"] = textBox2.Text.ToString();
    IsolatedStorageSettings.ApplicationSettings["s3"] = textBox3.Text.ToString();
}

Для того что бы загрузить данные из хранилища, нужно сначала проверить или там есть они. Если этого не сделать то программа будет зависать после того как мы очистим хранилище и будем питаться загрузить данные от туда. Проверка реализуется с помощью метода Contains. Если метод возвращает true, то присваиваем нужной переменной свойство ApplicationSettings:

private void Load_Click(object sender, RoutedEventArgs e)
{
    if (IsolatedStorageSettings.ApplicationSettings.Contains("s1"))
    {
    textBox1.Text = IsolatedStorageSettings.ApplicationSettings["s1"].ToString();
    }
    if (IsolatedStorageSettings.ApplicationSettings.Contains("s2"))
    {
        textBox2.Text = IsolatedStorageSettings.ApplicationSettings["s2"].ToString();
    }
    if (IsolatedStorageSettings.ApplicationSettings.Contains("s3"))
    {
        textBox3.Text = IsolatedStorageSettings.ApplicationSettings["s3"].ToString();
    }
}

Очистка хранилища происходит с помощью метода Remove:

private void Clear_Click(object sender, RoutedEventArgs e)
{
    IsolatedStorageSettings.ApplicationSettings.Remove("s1");
    IsolatedStorageSettings.ApplicationSettings.Remove("s2");
    IsolatedStorageSettings.ApplicationSettings.Remove("s3");
}

Наше приложение готово, и теперь можно его запускать на эмуляторе. Для начала введем данные в поля и попытаемся их сохранить.

image Теперь очистим поля.

image Попробуем загрузить данные из хранилища.

imageЕсли нажать на кнопку Clear, а потом на Load, то ничего не произойдет, потому что все данные сотрутся. Если выйти и зайти в приложение, то при нажатии на кнопку Load загрузятся последние сохраненные данные.

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

Реклама

5 комментариев

  1. Уведомление: Технические материалы по продуктам и решениям Microsoft на русском языке – апрель 2011 | Alexander Knyazev: блог

  2. Уведомление: Некоторые интересные ссылки (Март) | Александр Богатырев: сфера

  3. Уведомление: Читалка блогов для Windows Phone 7. Часть 2. Чтение RSS ленты « Личный блог Ивана Белко

  4. Уведомление: Читалка блогов для Windows Phone 7. Часть 1. Список RSS лент « Личный блог Ивана Белко

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s